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, GOUES, Claire Le, 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/3918
Tags: Add Tag
No Tags, Be the first to tag this record!
Institution: Singapore Management University
Language: English
id sg-smu-ink.sis_research-4920
record_format dspace
spelling sg-smu-ink.sis_research-49202018-01-18T06:30:07Z JFIX: Semantics-based repair of Java programs via symbolic PathFinder LE, Xuan-Bach D. CHU, Duc-Hiep LO, David GOUES, Claire Le 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-14T07:00:00Z text https://ink.library.smu.edu.sg/sis_research/3918 info:doi/10.1145/3092703.3098225 Research Collection School Of Computing and Information Systems eng Institutional Knowledge at Singapore Management University Software Engineering
institution Singapore Management University
building SMU Libraries
continent Asia
country Singapore
Singapore
content_provider SMU Libraries
collection InK@SMU
language English
topic Software Engineering
spellingShingle Software Engineering
LE, Xuan-Bach D.
CHU, Duc-Hiep
LO, David
GOUES, Claire Le
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
GOUES, Claire Le
VISSER, Willem
author_facet LE, Xuan-Bach D.
CHU, Duc-Hiep
LO, David
GOUES, Claire Le
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/3918
_version_ 1770573935567437824