English
Related papers

Related papers: Learning Likely Invariants to Explain Why a Progra…

200 papers

Fuzz testing proved its great effectiveness in finding software bugs in the latest years, however, there are still open challenges. Coverage-guided fuzzers suffer from the fact that covering a program point does not ensure the trigger of a…

Software Engineering · Computer Science 2020-12-22 Andrea Fioraldi

Fault localization is a critical process that involves identifying specific program elements responsible for program failures. Manually pinpointing these elements, such as classes, methods, or statements, which are associated with a fault…

Software Engineering · Computer Science 2024-03-18 Ratnadira Widyasari , Jia Wei Ang , Truong Giang Nguyen , Neil Sharma , David Lo

Bugs in Scratch programs can spoil the fun and inhibit learning success. Many common bugs are the result of recurring patterns of bad code. In this paper we present a collection of common code patterns that typically hint at bugs in Scratch…

Software Engineering · Computer Science 2021-12-03 Christoph Frädrich , Florian Obermüller , Nina Körber , Ute Heuer , Gordon Fraser

Software bugs are prevalent in modern software systems and notoriously hard to debug manually. Therefore, a large body of research efforts have been dedicated to automated software debugging, including both automated fault localization and…

Software Engineering · Computer Science 2019-10-04 Yiling Lou , Ali Ghanbari , Xia Li , Lingming Zhang , Dan Hao , Lu Zhang

When proving invariance properties of a program, we face two problems. The first problem is related to the necessity of proving tautologies of considered assertion language, whereas the second manifests in the need of finding sufficiently…

Logic in Computer Science · Computer Science 2016-11-24 Steven de Oliveira , Saddek Bensalem , Virgile Prevosto

In software development, encountering bugs is inevitable. However, opportunities to learn more about bug removal are limited. When students perform debugging tasks, they often use print statements because students do not know how to use a…

Software Engineering · Computer Science 2024-07-26 Aoi Kanaya , Takuma Migo , Hiroaki Hashiura

Large Language Models (LLMs) for code have gained significant attention recently. They can generate code in different programming languages based on provided prompts, fulfilling a long-lasting dream in Software Engineering (SE), i.e.,…

Software Engineering · Computer Science 2024-03-19 Florian Tambon , Arghavan Moradi Dakhel , Amin Nikanjam , Foutse Khomh , Michel C. Desmarais , Giuliano Antoniol

Deep learning has recently achieved initial success in program analysis tasks such as bug detection. Lacking real bugs, most existing works construct training and test data by injecting synthetic bugs into correct programs. Despite…

Machine Learning · Computer Science 2022-06-22 Jingxuan He , Luca Beurer-Kellner , Martin Vechev

We describe the integration of logical and uncertain reasoning methods to identify the likely source and location of software problems. To date, software engineers have had few tools for identifying the sources of error in complex software…

Artificial Intelligence · Computer Science 2013-03-08 Lisa J. Burnell , Eric J. Horvitz

While language models are increasingly more proficient at code generation, they still frequently generate incorrect programs. Many of these programs are obviously wrong, but others are more subtle and pass weaker correctness checks such as…

Software Engineering · Computer Science 2024-03-01 Alex Gu , Wen-Ding Li , Naman Jain , Theo X. Olausson , Celine Lee , Koushik Sen , Armando Solar-Lezama

Large language models (LLMs) are increasingly used for program verification, and yet little is known about \emph{how} they reason about program semantics during this process. In this work, we focus on abstract interpretation based-reasoning…

Machine Learning · Computer Science 2025-10-01 Jacqueline L. Mitchell , Brian Hyeongseok Kim , Chenyu Zhou , Chao Wang

Identifying and resolving logic errors can be one of the most frustrating challenges for novices programmers. Unlike syntax errors, for which a compiler or interpreter can issue a message, logic errors can be subtle. In certain conditions,…

Human-Computer Interaction · Computer Science 2023-11-28 Stephen MacNeil , Paul Denny , Andrew Tran , Juho Leinonen , Seth Bernstein , Arto Hellas , Sami Sarsa , Joanne Kim

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

Developers create bug-reproducing tests that support debugging by failing as long as the bug is present, and passing once the bug has been fixed. These tests are usually integrated into existing test suites and executed regularly alongside…

Software Engineering · Computer Science 2026-02-04 Andre Hora , Gordon Fraser

Bug fixing is a complex and time-consuming task in software development. Bug localization research tends to focus on the accuracy of automated tools that suggest source code files for developers to look at. However, little is known about…

Software Engineering · Computer Science 2026-05-07 Pablo Diaz Pedreira , Tamara Lopez , Michel Wermelinger

Synthesizing inductive loop invariants is fundamental to automating program verification. In this work, we observe that Large Language Models (such as gpt-3.5 or gpt-4) are capable of synthesizing loop invariants for a class of programs in…

One of the obstacles in automatic program proving is to obtain suitable loop invariants. The invariant of a loop is a weakened form of its postcondition (the loop's goal, also known as its contract); the present work takes advantage of this…

Software Engineering · Computer Science 2013-08-14 Carlo A. Furia , Bertrand Meyer

Compilers can specialize programs having invariants for performance improvement. Detecting program invariants that span large and complex code, however, is difficult for compilers. Traditional compilers do not perform very expensive…

Programming Languages · Computer Science 2019-07-01 Wei He

It is natural to suppose that a Large Language Model is more likely to generate correct test cases when prompted with correct code under test, compared to incorrect code under test. However, the size of this effect has never been previously…

Software Engineering · Computer Science 2025-03-31 Dong Huang , Jie M. Zhang , Mark Harman , Mingzhe Du , Heming Cui

Artificial Intelligence has gained a lot of traction in the recent years, with machine learning notably starting to see more applications across a varied range of fields. One specific machine learning application that is of interest to us…

Software Engineering · Computer Science 2023-05-10 Teodor Rares Begu