English
Related papers

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

200 papers

The statements `inheritance is not subtyping' and `mainstream OO languages unnecessarily place restrictions over inheritance' have rippled as mantras through the PL research community for years. Many mainstream OO developers and OO language…

Programming Languages · Computer Science 2018-01-01 Moez A. AbdelGawad

Code reviews are central for software quality assurance. Ideally, reviewers should explain their feedback to enable authors of code changes to understand the feedback and act accordingly. Different developers might need different…

Software Engineering · Computer Science 2024-10-11 Ratnadira Widyasari , Ting Zhang , Abir Bouraffa , Walid Maalej , David Lo

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

Programming language detection is a common need in the analysis of large source code bases. It is supported by a number of existing tools that rely on several features, and most notably file extensions, to determine file types. We consider…

Software Engineering · Computer Science 2021-03-02 Francesca Del Bonifro , Maurizio Gabbrielli , Stefano Zacchiroli

Code comments are important for program comprehension, development, and maintenance tasks. Given the varying standards for code comments, and their unstructured or semi-structured nature, developers get easily confused (especially novice…

Software Engineering · Computer Science 2023-04-26 Pooja Rani , Mathias Birrer , Sebastiano Panichella , Mohammad Ghafari , Oscar Nierstrasz

Artificial Intelligence (AI) increasingly automates various parts of the software development tasks. Although AI has enhanced the productivity of development tasks, it remains unstudied whether AI essentially outperforms humans in…

Software Engineering · Computer Science 2026-04-24 Imgyeong Lee , Tayyib Ul Hassan , Abram Hindle

In this paper, we present Lupa - a framework for large-scale analysis of the programming language usage. Lupa is a command line tool that uses the power of the IntelliJ Platform under the hood, which gives it access to powerful static…

Programming Languages · Computer Science 2022-03-30 Anna Vlasova , Maria Tigina , Ilya Vlasov , Anastasiia Birillo , Yaroslav Golubev , Timofey Bryksin

Large Language Models (LLMs) are rapidly transforming software engineering, with coding assistants embedded in an IDE becoming increasingly prevalent. While research has focused on improving the tools and understanding developer…

Background: The renaming of program identifiers is the most common refactoring operation. Because some identifiers are related to each other, developers may need to rename related identifiers together. Aims: To understand how developers…

Software Engineering · Computer Science 2022-12-07 Yuki Osumi , Naotaka Umekawa , Hitomi Komata , Shinpei Hayashi

Language models have shown remarkable proficiency in code generation; nevertheless, ensuring type correctness remains a challenge. Although traditional methods, such as constrained decoding, alleviate this problem by externally rejecting…

Programming Languages · Computer Science 2026-02-09 Zhechong Huang , Zhao Zhang , Ruyi Ji , Tingxuan Xia , Qihao Zhu , Qinxiang Cao , Zeyu Sun , Wiggin Zhou , Yingfei Xiong

Background: Using feature toggles is a technique that allows developers to either turn a feature on or off with a variable in a conditional statement. Feature toggles are increasingly used by software companies to facilitate continuous…

Software Engineering · Computer Science 2021-03-30 Rezvan Mahdavi-Hezaveh , Jacob Dremann , Laurie Williams

In-context learning is a promising paradigm that utilizes in-context examples as prompts for the predictions of large language models. These prompts are crucial for achieving strong performance. However, since the prompts need to be sampled…

Computation and Language · Computer Science 2025-07-15 Shaokun Zhang , Xiaobo Xia , Zhaoqing Wang , Ling-Hao Chen , Jiale Liu , Qingyun Wu , Tongliang Liu

Use case driven development methodologies put use cases at the center of the software development process. However, in order to support automated development and analysis, use cases need to be appropriately formalized. This will also help…

Software Engineering · Computer Science 2016-03-30 Rui Couto , António Nestor Ribeiro , José Creissac Campos

Garcia and Cimini study a type inference problem for the ITGL, an implicitly and gradually typed language with let-polymorphism, and develop a sound and complete inference algorithm for it. Soundness and completeness mean that, if the…

Programming Languages · Computer Science 2019-09-04 Yusuke Miyazaki , Taro Sekiyama , Atsushi Igarashi

Dependent types allow us to express precisely what a function is intended to do. Recent work on Quantitative Type Theory (QTT) extends dependent type systems with linearity, also allowing precision in expressing when a function can run.…

Programming Languages · Computer Science 2021-04-02 Edwin Brady

Bugs that are detected earlier during the development lifecycle are easier and cheaper to fix, whereas bugs that are found during production are difficult and expensive to address, and may have dire consequences. Type systems are…

Programming Languages · Computer Science 2021-10-12 Catarina Gamboa , Paulo Alexandre Santos , Christopher S. Timperley , Alcides Fonseca

Detecting design pattern instances in unfamiliar codebases remains a challenging yet essential task for improving software quality and maintainability. Traditional static analysis tools often struggle with the complexity, variability, and…

Software Engineering · Computer Science 2025-02-26 Christian Schindler , Andreas Rausch

Many recent approaches to natural language tasks are built on the remarkable abilities of large language models. Large language models can perform in-context learning, where they learn a new task from a few task demonstrations, without any…

Computation and Language · Computer Science 2022-09-07 Hongjin Su , Jungo Kasai , Chen Henry Wu , Weijia Shi , Tianlu Wang , Jiayi Xin , Rui Zhang , Mari Ostendorf , Luke Zettlemoyer , Noah A. Smith , Tao Yu

The rise of capabilities expressed by large language models has been quickly followed by the integration of the same complex systems into application level logic. Algorithms, programs, systems, and companies are built around structured…

Software Engineering · Computer Science 2024-02-28 Kaiser Pister , Dhruba Jyoti Paul , Patrick Brophy , Ishan Joshi

Software engineering research has always being concerned with the improvement of code completion approaches, which suggest the next tokens a developer will likely type while coding. The release of GitHub Copilot constitutes a big step…