JFIX: Semantics-based repair of Java programs via symbolic PathFinder
Recently there has been a proliferation of automated program repair (APR) techniques, targeting various programming languages. Such techniques can be generally classified into two families: syntactic- and semantics-based. Semantics-based APR, on which we focus, typically uses symbolic execution to i...
Saved in:
Main Authors: | , , , , |
---|---|
Format: | text |
Language: | English |
Published: |
Institutional Knowledge at Singapore Management University
2017
|
Subjects: | |
Online Access: | https://ink.library.smu.edu.sg/sis_research/3690 https://ink.library.smu.edu.sg/context/sis_research/article/4692/viewcontent/jfix_issta17.pdf |
Tags: |
Add Tag
No Tags, Be the first to tag this record!
|
Institution: | Singapore Management University |
Language: | English |
id |
sg-smu-ink.sis_research-4692 |
---|---|
record_format |
dspace |
spelling |
sg-smu-ink.sis_research-46922017-11-14T09:38:58Z JFIX: Semantics-based repair of Java programs via symbolic PathFinder LE, Xuan Bach D. CHU, Duc-Hiep LO, David LE, GOUES VISSER, Willem Recently there has been a proliferation of automated program repair (APR) techniques, targeting various programming languages. Such techniques can be generally classified into two families: syntactic- and semantics-based. Semantics-based APR, on which we focus, typically uses symbolic execution to infer semantic constraints and then program synthesis to construct repairs conforming to them. While syntactic-based APR techniques have been shown success- ful on bugs in real-world programs written in both C and Java, semantics-based APR techniques mostly target C programs. This leaves empirical comparisons of the APR families not fully explored, and developers without a Java-based semantics APR technique. We present JFix, a semantics-based APR framework that targets Java, and an associated Eclipse plugin. JFix is implemented atop Symbolic PathFinder, a well-known symbolic execution engine for Java programs. It extends one particular APR technique (Angelix), and is designed to be sufficiently generic to support a variety of such techniques. We demonstrate that semantics-based APR can indeed efficiently and effectively repair a variety of classes of bugs in large real-world Java programs. This supports our claim that the framework can both support developers seeking semantics-based repair of bugs in Java programs, as well as enable larger scale empirical studies comparing syntactic- and semantics-based APR targeting Java. The demonstration of our tool is available via the project website at: https://xuanbachle.github.io/semanticsrepair/ 2017-07-01T07:00:00Z text application/pdf https://ink.library.smu.edu.sg/sis_research/3690 info:doi/10.1145/3092703.3098225 https://ink.library.smu.edu.sg/context/sis_research/article/4692/viewcontent/jfix_issta17.pdf http://creativecommons.org/licenses/by-nc-nd/4.0/ Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Automatic Program Repair Symbolic Execution Program Synthesis Information Security Software Engineering |
institution |
Singapore Management University |
building |
SMU Libraries |
continent |
Asia |
country |
Singapore Singapore |
content_provider |
SMU Libraries |
collection |
InK@SMU |
language |
English |
topic |
Automatic Program Repair Symbolic Execution Program Synthesis Information Security Software Engineering |
spellingShingle |
Automatic Program Repair Symbolic Execution Program Synthesis Information Security Software Engineering LE, Xuan Bach D. CHU, Duc-Hiep LO, David LE, GOUES VISSER, Willem JFIX: Semantics-based repair of Java programs via symbolic PathFinder |
description |
Recently there has been a proliferation of automated program repair (APR) techniques, targeting various programming languages. Such techniques can be generally classified into two families: syntactic- and semantics-based. Semantics-based APR, on which we focus, typically uses symbolic execution to infer semantic constraints and then program synthesis to construct repairs conforming to them. While syntactic-based APR techniques have been shown success- ful on bugs in real-world programs written in both C and Java, semantics-based APR techniques mostly target C programs. This leaves empirical comparisons of the APR families not fully explored, and developers without a Java-based semantics APR technique. We present JFix, a semantics-based APR framework that targets Java, and an associated Eclipse plugin. JFix is implemented atop Symbolic PathFinder, a well-known symbolic execution engine for Java programs. It extends one particular APR technique (Angelix), and is designed to be sufficiently generic to support a variety of such techniques. We demonstrate that semantics-based APR can indeed efficiently and effectively repair a variety of classes of bugs in large real-world Java programs. This supports our claim that the framework can both support developers seeking semantics-based repair of bugs in Java programs, as well as enable larger scale empirical studies comparing syntactic- and semantics-based APR targeting Java. The demonstration of our tool is available via the project website at: https://xuanbachle.github.io/semanticsrepair/ |
format |
text |
author |
LE, Xuan Bach D. CHU, Duc-Hiep LO, David LE, GOUES VISSER, Willem |
author_facet |
LE, Xuan Bach D. CHU, Duc-Hiep LO, David LE, GOUES VISSER, Willem |
author_sort |
LE, Xuan Bach D. |
title |
JFIX: Semantics-based repair of Java programs via symbolic PathFinder |
title_short |
JFIX: Semantics-based repair of Java programs via symbolic PathFinder |
title_full |
JFIX: Semantics-based repair of Java programs via symbolic PathFinder |
title_fullStr |
JFIX: Semantics-based repair of Java programs via symbolic PathFinder |
title_full_unstemmed |
JFIX: Semantics-based repair of Java programs via symbolic PathFinder |
title_sort |
jfix: semantics-based repair of java programs via symbolic pathfinder |
publisher |
Institutional Knowledge at Singapore Management University |
publishDate |
2017 |
url |
https://ink.library.smu.edu.sg/sis_research/3690 https://ink.library.smu.edu.sg/context/sis_research/article/4692/viewcontent/jfix_issta17.pdf |
_version_ |
1770573672259518464 |