English
Related papers

Related papers: Typify: A Lightweight Usage-driven Static Analyzer…

200 papers

Dynamic languages, such as Python and Javascript, trade static typing for developer flexibility and productivity. Lack of static typing can cause run-time exceptions and is a major factor for weak IDE support. To alleviate these issues, PEP…

Machine Learning · Computer Science 2022-01-20 Amir M. Mir , Evaldas Latoskinas , Sebastian Proksch , Georgios Gousios

Python type inference is challenging in practice. Due to its dynamic properties and extensive dependencies on third-party libraries without type annotations, the performance of traditional static analysis techniques is limited. Although…

Software Engineering · Computer Science 2021-06-29 Siwei Cui , Gang Zhao , Zeyu Dai , Luochao Wang , Ruihong Huang , Jeff Huang

Python type annotations enable static type checking, but most code remains untyped because manual annotation is time-consuming and tedious. Past approaches to automatic type inference fall short: static methods struggle with dynamic…

Programming Languages · Computer Science 2026-03-12 Juan Altmayer Pizzorno , Emery D. Berger

Type inference for dynamic programming languages such as Python is an important yet challenging task. Static type inference techniques can precisely infer variables with enough static constraints but are unable to handle variables with…

Software Engineering · Computer Science 2022-02-10 Yun Peng , Cuiyun Gao , Zongjie Li , Bowei Gao , David Lo , Qirun Zhang , Michael Lyu

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…

Software Engineering · Computer Science 2023-07-31 Bernd Gruner , Tim Sonnekalb , Thomas S. Heinze , Clemens-Alexander Brust

Python is a popular dynamic programming language, evidenced by its ranking as the second most commonly used language on GitHub. However, its dynamic type system can lead to potential type errors, leading researchers to explore automatic…

Software Engineering · Computer Science 2023-07-19 Yun Peng , Chaozheng Wang , Wenxuan Wang , Cuiyun Gao , Michael R. Lyu

Recently, dynamically typed languages, such as Python, have gained unprecedented popularity. Although these languages alleviate the need for mandatory type annotations, types still play a critical role in program understanding and…

Programming Languages · Computer Science 2022-02-08 Ibrahim Abdelaziz , Julian Dolby , Kavitha Srinivas

In light of the growing interest in type inference research for Python, both researchers and practitioners require a standardized process to assess the performance of various type inference techniques. This paper introduces TypeEvalPy, a…

Software Engineering · Computer Science 2024-01-03 Ashwin Prasad Shivarpatna Venkatesh , Samkutty Sabu , Jiawei Wang , Amir M. Mir , Li Li , Eric Bodden

Type inference methods based on deep learning are becoming increasingly popular as they aim to compensate for the drawbacks of static and dynamic analysis approaches, such as high uncertainty. However, their practical application is still…

Software Engineering · Computer Science 2023-08-08 Jonathan Elkobi , Bernd Gruner , Tim Sonnekalb , Clemens-Alexander Brust

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…

Software Engineering · Computer Science 2020-03-09 Michael Pradel , Georgios Gousios , Jason Liu , Satish Chandra

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…

Machine Learning · Computer Science 2023-10-05 Lukas Seidel , Sedick David Baker Effendi , Xavier Pinho , Konrad Rieck , Brink van der Merwe , Fabian Yamaguchi

Gradual typing enables developers to annotate types of their own choosing, offering a flexible middle ground between no type annotations and a fully statically typed language. As more and more code bases get type-annotated, static type…

Software Engineering · Computer Science 2024-01-15 Yiu Wai Chow , Luca Di Grazia , Michael Pradel

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…

Software Engineering · Computer Science 2023-03-20 Jiayi Wei , Greg Durrett , Isil Dillig

Misconceptions about program execution hinder many novice programmers. We introduce SimpliPy, a notional machine designed around a carefully chosen Python subset to clarify core control flow and scoping concepts. Its foundation is a precise…

Programming Languages · Computer Science 2025-10-21 Moida Praneeth Jain , Venkatesh Choppella

Due to the rise of machine learning, Python is an increasingly popular programming language. Python, however, is dynamically typed. Dynamic typing has shown to have drawbacks when a project grows, while at the same time it improves…

Software Engineering · Computer Science 2019-12-03 Casper Boone , Niels de Bruin , Arjan Langerak , Fabian Stelmach

Automated unit test generation is an established research field that has so far focused on statically-typed programming languages. The lack of type information in dynamically-typed programming languages, such as Python, inhibits test…

Software Engineering · Computer Science 2025-07-03 Lukas Krodinger , Stephan Lukasczyk , Gordon Fraser

Refinement types enable lightweight verification of functional programs. Algorithms for statically inferring refinement types typically work by reduction to solving systems of constrained Horn clauses extracted from typing derivations. An…

Programming Languages · Computer Science 2020-11-11 Zvonimir Pavlinovic , Yusen Su , Thomas Wies

Gradual typing has gained popularity as a design choice for integrating static and dynamic typing within a single language. Several practical languages have adopted gradual typing to offer programmers the flexibility to annotate their…

Programming Languages · Computer Science 2026-03-09 Senxi Li , Feng Dai , Tetsuro Yamazaki , Shigeru Chiba

Precise and fast static type analysis for dynamically typed language is very difficult. This is mainly because the lack of static type information makes it difficult to approximate all possible values of a variable. Actually, the existing…

Software Engineering · Computer Science 2023-02-16 Ryutaro Kodama , Yoshitaka Arahori , Kathuhiko Gondow

We present a type system and inference algorithm for a rich subset of JavaScript equipped with objects, structural subtyping, prototype inheritance, and first-class methods. The type system supports abstract and recursive objects, and is…

Programming Languages · Computer Science 2016-10-19 Satish Chandra , Colin S. Gordon , Jean-Baptiste Jeannin , Cole Schlesinger , Manu Sridharan , Frank Tip , Youngil Choi
‹ Prev 1 2 3 10 Next ›