English
Related papers

Related papers: Removing Dynamic Type Tests with Context-Driven Ba…

200 papers

Dynamically typed programming languages such as JavaScript and Python defer type checking to run time. In order to maximize performance, dynamic language VM implementations must attempt to eliminate redundant dynamic type checks. However,…

Programming Languages · Computer Science 2015-06-01 Maxime Chevalier-Boisvert , Marc Feeley

Dynamically typed programming languages such as Python and JavaScript defer type checking to run time. VM implementations can improve performance by eliminating redundant dynamic type checks. However, type inference analyses are often…

Programming Languages · Computer Science 2015-11-11 Maxime Chevalier-Boisvert , Marc Feeley

Typical JavaScript (JS) programs feature a large number of object property accesses. Hence, fast property reads and writes are crucial for good performance. Unfortunately, many (often redundant) dynamic checks are implied in each property…

Programming Languages · Computer Science 2015-07-10 Maxime Chevalier-Boisvert , Marc Feeley

JDBC remains a key technology for database access in Java applications. Since the database dictionary and the Java type system have distinct scopes, developers inevitably need to deal with bugs in SQL-to-Java type mappings. We propose an…

Databases · Computer Science 2026-05-05 Thomas James Kirz , Werner Dietl , Mattias Ulbrich , Stefanie Scherzinger

Transient gradual typing imposes run-time type tests that typically cause a linear slowdown in programs' performance. This performance impact discourages the use of type annotations because adding types to a program makes the program…

Programming Languages · Computer Science 2019-02-19 Richard Roberts , Stefan Marr , Michael Homer , James Noble

Many object-oriented dynamic languages allow programmers to _extract methods_ from objects and treat them as functions. This allows for flexible programming patterns, but presents challenges for type systems. In particular, a simple…

Programming Languages · Computer Science 2021-11-23 Yuquan Fu , Sam Tobin-Hochstadt

A gradual type system allows developers to declare certain types to be enforced by the compiler (i.e., statically typed), while leaving other types to be enforced via runtime checks (i.e., dynamically typed). When runtime checks fail,…

Programming Languages · Computer Science 2025-03-03 Felipe Bañados Schwerter , Ronald Garcia , Reid Holmes , Karim Ali

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

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…

Software Engineering · Computer Science 2025-01-17 Boqi Chen , José Antonio Hernández López , Gunter Mussbacher , Dániel Varró

Strong static type systems help programmers eliminate many errors without much burden of supplying type annotations. However, this flexibility makes it highly non-trivial to diagnose ill-typed programs, especially for novice programmers.…

Programming Languages · Computer Science 2022-10-10 Chuqin Geng , Haolin Ye , Yixuan Li , Tianyu Han , Brigitte Pientka , Xujie Si

Dynamic code, i.e., code that is created or modified at runtime, is ubiquitous in today's world. The behavior of dynamic code can depend on the logic of the dynamic code generator in subtle and non-obvious ways, with significant security…

Cryptography and Security · Computer Science 2019-10-31 Jesse Bartels , Jon Stephens , Saumya Debray

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

**Context:** The design of static type systems that can validate dynamically-typed programs (**gradually**) is an ongoing challenge. A key difficulty is that dynamic code rarely follows datatype-driven design. Programs instead use runtime…

Programming Languages · Computer Science 2025-08-07 Hanwen Guo , Ben Greenman

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…

Programming Languages · Computer Science 2016-05-05 Esben Andreasen , Colin S. Gordon , Satish Chandra , Manu Sridharan , Frank Tip , Koushik Sen

Many important security properties can be formulated in terms of flows of tainted data, and improved taint analysis tools to prevent such flows are of critical need. Most existing taint analyses use whole-program static analysis, leading to…

Programming Languages · Computer Science 2025-05-02 Nima Karimipour , Kanak Das , Manu Sridharan , Behnaz Hassanshahi

Dynamically typed object-oriented languages enable programmers to write elegant, reusable and extensible programs. However, with the current methodology for program verification, the absence of static type information creates significant…

Programming Languages · Computer Science 2015-01-13 Björn Engelmann , Ernst-Rüdiger Olderog , Nils Erik Flick

Gradual typing combines static and dynamic typing in the same language, offering the benefits of both to programmers. Static typing provides error detection and strong guarantees while dynamic typing enables rapid prototyping and flexible…

Programming Languages · Computer Science 2016-10-27 Michael M. Vitousek , Jeremy G. Siek

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…

Programming Languages · Computer Science 2018-03-20 Eric L Seidel , Ranjit Jhala , Westley Weimer

Dynamic languages are praised for their flexibility and expressiveness, but static analysis often yields many false positives and verification is cumbersome for lack of structure. Hence, unit testing is the prevalent incomplete method for…

Programming Languages · Computer Science 2015-02-06 Robert Jakob , Peter Thiemann

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.…

Human-Computer Interaction · Computer Science 2023-03-20 Shuai Fu , Tim Dwyer , Peter J. Stuckey , Jackson Wain , Jesse Linossier
‹ Prev 1 2 3 10 Next ›