English
Related papers

Related papers: How Do Developers Use Type Inference: An Explorato…

200 papers

Whilst there have been great advances in HPC hardware and software in recent years, the languages and models that we use to program these machines have remained much more static. This is not from a lack of effort, but instead by virtue of…

Programming Languages · Computer Science 2016-10-31 Nick Brown

Python is a multi-paradigm programming language that fully supports object-oriented (OO) programming. The language allows writing code in a non-procedural imperative manner, using procedures, using classes, or in a functional style. To…

Software Engineering · Computer Science 2022-09-07 Robert Dyer , Jigyasa Chauhan

Every programmer has a characteristic style, ranging from preferences about identifier naming to preferences about object relationships and design patterns. Coding conventions define a consistent syntactic style, fostering readability and…

Software Engineering · Computer Science 2016-11-09 Miltiadis Allamanis , Earl T. Barr , Christian Bird , Charles Sutton

Annotations have been formally introduced into Java since Java 5. Since then, annotations have been widely used by the Java community for different purposes, such as compiler guidance and runtime processing. Despite the ever-growing use,…

Software Engineering · Computer Science 2019-04-16 Zhongxing Yu , Chenggang Bai , Lionel Seinturier , Martin Monperrus

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

Type inference is an application domain that is a natural fit for logic programming (LP). LP systems natively support unification, which serves as a basic building block of typical type inference algorithms. In particular, polymorphic type…

Programming Languages · Computer Science 2017-09-13 Ki Yung Ahn

Probabilistic programming languages have recently gained a lot of attention, in particular due to their applications in domains such as machine learning and differential privacy. To establish invariants of interest, many such languages…

Programming Languages · Computer Science 2026-04-08 Wenjia Ye , Matías Toro , Federico Olmedo

A resource leak occurs when a program fails to free some finite resource after it is no longer needed. Such leaks are a significant cause of real-world crashes and performance problems. Recent work proposed an approach to prevent resource…

Software Engineering · Computer Science 2023-09-25 Narges Shadab , Pritam Gharat , Shrey Tiwari , Michael D. Ernst , Martin Kellogg , Shuvendu Lahiri , Akash Lal , Manu Sridharan

In the last two decades, tools have been implemented to more formally specify the semantic analysis phase of a compiler instead of relying on handwritten code. In this paper, we introduce patterns and a method to translate a formal…

Programming Languages · Computer Science 2020-02-06 Uwe Meyer , Björn Pfarr

Session types express and enforce safe communication in concurrent message-passing systems by statically capturing the interaction protocols between processes in the type. Recent works extend session types with arithmetic refinements, which…

Programming Languages · Computer Science 2026-02-09 Toby Ueno , Ankush Das

Type annotations in Python enhance maintainability and error detection. However, generating these annotations manually is error prone and requires extra effort. Traditional automation approaches like static analysis, machine learning, and…

Programming Languages · Computer Science 2025-08-04 Varun Bharti , Shashwat Jha , Dhruv Kumar , Pankaj Jalote

Refinement types decorate types with assertions that enable automatic verification. Like assertions, refinements are limited to binders that are in scope, and hence, cannot express higher-order specifications. Ghost variables circumvent…

Programming Languages · Computer Science 2021-05-06 Anish Tondwalkar , Matthew Kolosick , Ranjit Jhala

Dependently typed programming languages have become increasingly relevant in recent years. They have been adopted in industrial strength programming languages and have been extremely successful as the basis for theorem provers. There are…

Programming Languages · Computer Science 2024-04-09 Christophe Scholliers

There are possible benefits and drawbacks to chaining methods together, as is often done in fluent APIs. A prior study investigated how Java developers chain methods in over 2.7k open-source projects. That study observed, for the dataset…

Software Engineering · Computer Science 2023-03-21 Ali M. Keshk , Robert Dyer

Type inference for dynamic languages like Python is a persistent challenge in software engineering. While large language models (LLMs) have shown promise in code understanding, their type inference capabilities remain underexplored. We…

Software Engineering · Computer Science 2025-07-31 Honghua Dong , Jiacheng Yang , Xun Deng , Yuhe Jiang , Gennady Pekhimenko , Fan Long , Xujie Si

Hitherto statistical type inference systems rely thoroughly on supervised learning approaches, which require laborious manual effort to collect and label large amounts of data. Most Turing-complete imperative languages share similar…

Artificial Intelligence · Computer Science 2022-12-27 Zhiming Li , Xiaofei Xie , Haoliang Li , Zhengzi Xu , Yi Li , Yang Liu

We present \textbf{Turn}, a compiled, actor-based programming language -- statically typed for schema inference, dynamically typed at the value level -- for agentic software: programs that reason and act autonomously by delegating inference…

Programming Languages · Computer Science 2026-03-11 Muyukani Kizito

In today's software world with its cornucopia of reusable software libraries, when a programmer is faced with a programming task that they suspect can be completed through the use of a library, they often look for code examples using a…

Software Engineering · Computer Science 2021-10-08 Geert Heyman , Rafael Huysegems , Pascal Justen , Tom Van Cutsem

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

Logging -- used for system events and security breaches to describe more informational yet essential aspects of software features -- is pervasive. Given the high transactionality of today's software, logging effectiveness can be reduced by…

Software Engineering · Computer Science 2022-07-20 Yiming Tang , Allan Spektor , Raffi Khatchadourian , Mehdi Bagherzadeh