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...

Full description

Saved in:
Bibliographic Details
Main Authors: LE, Xuan Bach D., CHU, Duc-Hiep, LO, David, LE, GOUES, VISSER, Willem
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