中文
相关论文

相关论文: PyTy: Repairing Static Type Errors in Python

200 篇论文

Static type errors are a common stumbling block for newcomers to typed functional languages. We present a dynamic approach to explaining type errors by generating counterexample witness inputs that illustrate how an ill-typed program goes…

编程语言 · 计算机科学 2018-03-20 Eric L Seidel , Ranjit Jhala , Westley Weimer

Optional type annotations allow for enriching dynamic programming languages with static typing features like better Integrated Development Environment (IDE) support, more precise program analysis, and early detection and prevention of…

软件工程 · 计算机科学 2023-07-31 Bernd Gruner , Tim Sonnekalb , Thomas S. Heinze , Clemens-Alexander Brust

Type errors in Python often lead to runtime failures, posing significant challenges to software reliability and developer productivity. Existing static analysis tools aim to detect such errors without execution but frequently suffer from…

软件工程 · 计算机科学 2025-10-03 Chen Yang , Ziqi Wang , Yanjie Jiang , Lin Yang , Yuteng Zheng , Jianyi Zhou , Junjie Chen

Dynamically typed programming languages are popular in education and the software industry. While presenting a low barrier to entry, they suffer from run-time type errors and longer-term problems in code quality and maintainability.…

人机交互 · 计算机科学 2023-03-20 Shuai Fu , Tim Dwyer , Peter J. Stuckey , Jackson Wain , Jesse Linossier

Recent years have seen growing interest in the retrofitting of type systems onto dynamically-typed programming languages, in order to improve type safety, programmer productivity, or performance. In such cases, type system developers must…

编程语言 · 计算机科学 2016-05-05 Esben Andreasen , Colin S. Gordon , Satish Chandra , Manu Sridharan , Frank Tip , Koushik Sen

Automated unit test generation is an established research field, and mature test generation tools exist for statically typed programming languages such as Java. It is, however, substantially more difficult to automatically generate…

软件工程 · 计算机科学 2020-10-07 Stephan Lukasczyk , Florian Kroiß , Gordon Fraser

Mining repetitive code changes from version control history is a common way of discovering unknown change patterns. Such change patterns can be used in code recommender systems or automated program repair techniques. While there are such…

软件工程 · 计算机科学 2023-04-12 Akalanka Galappaththi , Sarah Nadi

Automated regression test generation has been extensively explored, yet generating high-quality tests for Python programs remains particularly challenging. Because of the Python's dynamic typing features, existing approaches, ranging from…

软件工程 · 计算机科学 2025-10-23 Runlin Liu , Zhe Zhang , Yunge Hu , Yuhang Lin , Xiang Gao , Hailong Sun

Motivation: Automated bug detection in dynamically typed languages such as Python is essential for maintaining code quality. The lack of mandatory type annotations in such languages can lead to errors that are challenging to identify early…

软件工程 · 计算机科学 2025-01-17 Boqi Chen , José Antonio Hernández López , Gunter Mussbacher , Dániel Varró

Maintaining large code bases written in dynamically typed languages, such as JavaScript or Python, can be challenging due to the absence of type annotations: simple data compatibility errors proliferate, IDE support is limited, and APIs are…

软件工程 · 计算机科学 2020-03-09 Michael Pradel , Georgios Gousios , Jason Liu , Satish Chandra

We introduce a novel approach for testing static typing implementations based on the concept of API-driven program synthesis. The idea is to synthesize type-intensive but small and well-typed programs by leveraging and combining application…

编程语言 · 计算机科学 2023-11-09 Thodoris Sotiropoulos , Stefanos Chaliasos , Zhendong Su

With the recent advances in AI programming assistants such as GitHub Copilot, programming is not limited to classical programming languages anymore--programming tasks can also be expressed and solved by end-users in natural text. Despite…

软件工程 · 计算机科学 2024-12-18 Ruchit Rawal , Victor-Alexandru Pădurean , Sven Apel , Adish Singla , Mariya Toneva

Online programming courses are becoming more and more popular, but they still have significant drawbacks when compared to the traditional education system, e.g., the lack of feedback. In this study, we apply machine learning methods to…

计算机与社会 · 计算机科学 2021-07-22 Artyom Lobanov , Timofey Bryksin , Alexey Shpilman

Recent advances in natural language processing (NLP) have contributed to the development of automated writing evaluation (AWE) systems that can correct grammatical errors. However, while these systems are effective at improving text, they…

计算与语言 · 计算机科学 2025-08-12 Steven Coyne , Diana Galvan-Sosa , Ryan Spring , Camélia Guerraoui , Michael Zock , Keisuke Sakaguchi , Kentaro Inui

Statically analyzing dynamically-typed code is a challenging endeavor, as even seemingly trivial tasks such as determining the targets of procedure calls are non-trivial without knowing the types of objects at compile time. Addressing this…

Compared to other programming languages (e.g., Java), Python has more idioms to make Python code concise and efficient. Although pythonic idioms are well accepted in the Python community, Python programmers are often faced with many…

软件工程 · 计算机科学 2022-07-13 Zejun Zhang , Zhenchang Xing , Xin Xia , Xiwei Xu , Liming Zhu

Modern languages are equipped with static type checking/inference that helps programmers to keep a clean programming style and to reduce errors. However, the ever-growing size of programs and their continuous evolution require building fast…

编程语言 · 计算机科学 2018-11-28 Matteo Busi , Pierpaolo Degano , Letterio Galletta

There has been growing interest in automatically predicting missing type annotations in programs written in Python and JavaScript. While prior methods have achieved impressive accuracy when predicting the most common types, they often…

软件工程 · 计算机科学 2023-03-20 Jiayi Wei , Greg Durrett , Isil Dillig

Gradual typing is an approach to integrating static and dynamic typing within the same language, and puts the programmer in control of which regions of code are type checked at compile-time and which are type checked at run-time. In this…

编程语言 · 计算机科学 2019-09-16 Matteo Cimini

Mutation testing is an effective technique for assessing the effectiveness of test suites by systematically injecting artificial faults into programs. However, existing mutation testing techniques fall short in capturing many types of…

软件工程 · 计算机科学 2026-01-28 Saba Alimadadi , Golnaz Gharachorlu