49 citations · 89 across the 20 of their papers we have counts for
22 papers
Retrofitting Code Using LLMs to Support Exceptional Behavior
Linghan Zhong, Jiyang Zhang, Jayanth Srinivasa +2
Exception Related Code (ERC), which includes throw statements, conditions (if statements) that guard those throw statements, and try/catch blocks, is an essential component of soft…
A Tool for Generating Exceptional Behavior Tests With Large Language Models
Linghan Zhong, Samuel Yuan, Jiyang Zhang +4
Exceptional behavior tests (EBTs) are crucial in software development for verifying that code correctly handles unwanted events and throws appropriate exceptions. However, prior re…
exLong: Generating Exceptional Behavior Tests with Large Language Models
Jiyang Zhang, Yu Liu, Pengyu Nie +2
Many popular programming languages, including C#, Java, and Python, support exceptions. Exceptions are thrown during program execution if an unwanted event happens, e.g., a method…
Pattern-Based Peephole Optimizations with Java JIT Tests
Zhiqiang Zang, Aditya Thimmaiah, Milos Gligoric
We present JOG, a framework that facilitates developing Java JIT peephole optimizations alongside JIT tests. JOG enables developers to write a pattern, in Java itself, that specifi…
Multilingual Code Co-Evolution Using Large Language Models
Jiyang Zhang, Pengyu Nie, Junyi Jessy Li +1
Many software projects implement APIs and algorithms in multiple programming languages. Maintaining such projects is tiresome, as developers have to ensure that any change (e.g., a…
pytest-inline: An Inline Testing Tool for Python
Yu Liu, Zachary Thurston, Alan Han +3
We present pytest-inline, the first inline testing framework for Python. We recently proposed inline tests to make it easier to test individual program statements. But, there is no…
Learning Deep Semantics for Test Completion
Pengyu Nie, Rahul Banerjee, Junyi Jessy Li +2
Writing tests is a time-consuming yet essential task during software development. We propose to leverage recent advances in deep learning for text and code generation to assist dev…
Using Developer Discussions to Guide Fixing Bugs in Software
Sheena Panthaplackel, Milos Gligoric, Junyi Jessy Li +1
Automatically fixing software bugs is a challenging task. While recent work showed that natural language context is useful in guiding bug-fixing models, the approach required promp…
CoditT5: Pretraining for Source Code and Natural Language Editing
Jiyang Zhang, Sheena Panthaplackel, Pengyu Nie +2
Pretrained language models have been shown to be effective in many software-related generation tasks; however, they are not well-suited for editing tasks as they are not designed t…
Inline Tests
Yu Liu, Pengyu Nie, Owolabi Legunsen +1
Unit tests are widely used to check source code quality, but they can be too coarse-grained or ill-suited for testing individual program statements. We introduce inline tests to ma…
Compiler Testing using Template Java Programs
Zhiqiang Zang, Nathan Wiatrek, Milos Gligoric +1
We present JAttack, a framework that enables template-based testing for compilers. Using JAttack, a developer writes a template program that describes a set of programs to be gener…
Learning to Describe Solutions for Bug Reports Based on Developer Discussions
Sheena Panthaplackel, Junyi Jessy Li, Milos Gligoric +1
When a software bug is reported, developers engage in a discussion to collaboratively resolve it. While the solution is likely formulated within the discussion, it is often buried…
Impact of Evaluation Methodologies on Code Summarization
Pengyu Nie, Jiyang Zhang, Junyi Jessy Li +2
There has been a growing interest in developing machine learning (ML) models for code summarization tasks, e.g., comment generation and method naming. Despite substantial increase…
Learning to Generate Code Comments from Class Hierarchies
Jiyang Zhang, Sheena Panthaplackel, Pengyu Nie +3
Descriptive code comments are essential for supporting code comprehension and maintenance. We propose the task of automatically generating comments for overriding methods. We formu…
Roosterize: Suggesting Lemma Names for Coq Verification Projects Using Deep Learning
Pengyu Nie, Karl Palmskog, Junyi Jessy Li +1
Naming conventions are an important concern in large verification projects using proof assistants, such as Coq. In particular, lemma names are used by proof engineers to effectivel…
Deep Just-In-Time Inconsistency Detection Between Comments and Source Code
Sheena Panthaplackel, Junyi Jessy Li, Milos Gligoric +1
Natural language comments convey key aspects of source code such as implementation, usage, and pre- and post-conditions. Failure to update comments accordingly when the correspondi…
Learning to Format Coq Code Using Language Models
Pengyu Nie, Karl Palmskog, Junyi Jessy Li +1
Should the final right bracket in a record declaration be on a separate line? Should arguments to the rewrite tactic be separated by a single space? Coq code tends to be written in…
Learning to Update Natural Language Comments Based on Code Changes
Sheena Panthaplackel, Pengyu Nie, Milos Gligoric +2
We formulate the novel task of automatically updating an existing natural language comment based on changes in the body of code it accompanies. We propose an approach that learns t…
Deep Generation of Coq Lemma Names Using Elaborated Terms
Pengyu Nie, Karl Palmskog, Junyi Jessy Li +1
Coding conventions for naming, spacing, and other essentially stylistic properties are necessary for developers to effectively understand, review, and modify source code in large s…
QED at Large: A Survey of Engineering of Formally Verified Software
Talia Ringer, Karl Palmskog, Ilya Sergey +2
Development of formal proofs of correctness of programs can increase actual and perceived reliability and facilitate better understanding of program specifications and their underl…
Associating Natural Language Comment and Source Code Entities
Sheena Panthaplackel, Milos Gligoric, Raymond J. Mooney +1
Comments are an integral part of software development; they are natural language descriptions associated with source code elements. Understanding explicit associations can be usefu…
Executable Trigger-Action Comments
Pengyu Nie, Rishabh Rai, Junyi Jessy Li +3
Natural language elements, e.g., todo comments, are frequently used to communicate among the developers and to describe tasks that need to be performed (actions) when specific cond…