---
_id: '941'
abstract:
- lang: eng
  text: '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 successful 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/ '
author:
- first_name: Xuan
  full_name: Le, Xuan
  last_name: Le
- first_name: Duc Hiep
  full_name: Chu, Duc Hiep
  id: 3598E630-F248-11E8-B48F-1D18A9856A87
  last_name: Chu
- first_name: David
  full_name: Lo, David
  last_name: Lo
- first_name: Claire
  full_name: Le Goues, Claire
  last_name: Le Goues
- first_name: Willem
  full_name: Visser, Willem
  last_name: Visser
citation:
  ama: 'Le X, Chu DH, Lo D, Le Goues C, Visser W. JFIX: Semantics-based repair of
    Java programs via symbolic  PathFinder. In: <i>Proceedings of the 26th ACM SIGSOFT
    International Symposium on Software Testing and Analysis</i>. ACM; 2017:376-379.
    doi:<a href="https://doi.org/10.1145/3092703.3098225">10.1145/3092703.3098225</a>'
  apa: 'Le, X., Chu, D. H., Lo, D., Le Goues, C., &#38; Visser, W. (2017). JFIX: Semantics-based
    repair of Java programs via symbolic  PathFinder. In <i>Proceedings of the 26th
    ACM SIGSOFT International Symposium on Software Testing and Analysis</i> (pp.
    376–379). Santa Barbara, CA, United States: ACM. <a href="https://doi.org/10.1145/3092703.3098225">https://doi.org/10.1145/3092703.3098225</a>'
  chicago: 'Le, Xuan, Duc Hiep Chu, David Lo, Claire Le Goues, and Willem Visser.
    “JFIX: Semantics-Based Repair of Java Programs via Symbolic  PathFinder.” In <i>Proceedings
    of the 26th ACM SIGSOFT International Symposium on Software Testing and Analysis</i>,
    376–79. ACM, 2017. <a href="https://doi.org/10.1145/3092703.3098225">https://doi.org/10.1145/3092703.3098225</a>.'
  ieee: 'X. Le, D. H. Chu, D. Lo, C. Le Goues, and W. Visser, “JFIX: Semantics-based
    repair of Java programs via symbolic  PathFinder,” in <i>Proceedings of the 26th
    ACM SIGSOFT International Symposium on Software Testing and Analysis</i>, Santa
    Barbara, CA, United States, 2017, pp. 376–379.'
  ista: 'Le X, Chu DH, Lo D, Le Goues C, Visser W. 2017. JFIX: Semantics-based repair
    of Java programs via symbolic  PathFinder. Proceedings of the 26th ACM SIGSOFT
    International Symposium on Software Testing and Analysis. ISSTA: International
    Symposium on Software Testing and Analysis, 376–379.'
  mla: 'Le, Xuan, et al. “JFIX: Semantics-Based Repair of Java Programs via Symbolic 
    PathFinder.” <i>Proceedings of the 26th ACM SIGSOFT International Symposium on
    Software Testing and Analysis</i>, ACM, 2017, pp. 376–79, doi:<a href="https://doi.org/10.1145/3092703.3098225">10.1145/3092703.3098225</a>.'
  short: X. Le, D.H. Chu, D. Lo, C. Le Goues, W. Visser, in:, Proceedings of the 26th
    ACM SIGSOFT International Symposium on Software Testing and Analysis, ACM, 2017,
    pp. 376–379.
conference:
  end_date: 2017-07-14
  location: Santa Barbara, CA, United States
  name: 'ISSTA: International Symposium on Software Testing and Analysis'
  start_date: 2017-07-10
date_created: 2018-12-11T11:49:19Z
date_published: 2017-07-10T00:00:00Z
date_updated: 2021-01-12T08:22:05Z
day: '10'
department:
- _id: ToHe
doi: 10.1145/3092703.3098225
language:
- iso: eng
month: '07'
oa_version: None
page: '376 - 379 '
project:
- _id: 25832EC2-B435-11E9-9278-68D0E5697425
  call_identifier: FWF
  grant_number: S 11407_N23
  name: Rigorous Systems Engineering
- _id: 25F42A32-B435-11E9-9278-68D0E5697425
  call_identifier: FWF
  grant_number: Z211
  name: The Wittgenstein Prize
publication: Proceedings of the 26th ACM SIGSOFT International Symposium on Software
  Testing and Analysis
publication_status: published
publisher: ACM
publist_id: '6478'
quality_controlled: '1'
scopus_import: 1
status: public
title: 'JFIX: Semantics-based repair of Java programs via symbolic  PathFinder'
type: conference
user_id: 3E5EF7F0-F248-11E8-B48F-1D18A9856A87
year: '2017'
...
---
_id: '942'
abstract:
- lang: eng
  text: 'A notable class of techniques for automatic program repair is known as semantics-based.
    Such techniques, e.g., Angelix, infer semantic specifications via symbolic execution,
    and then use program synthesis to construct new code that satisfies those inferred
    specifications. However, the obtained specifications are naturally incomplete,
    leaving the synthesis engine with a difficult task of synthesizing a general solution
    from a sparse space of many possible solutions that are consistent with the provided
    specifications but that do not necessarily generalize. We present S3, a new repair
    synthesis engine that leverages programming-by-examples methodology to synthesize
    high-quality bug repairs. The novelty in S3 that allows it to tackle the sparse
    search space to create more general repairs is three-fold: (1) A systematic way
    to customize and constrain the syntactic search space via a domain-specific language,
    (2) An efficient enumeration-based search strategy over the constrained search
    space, and (3) A number of ranking features based on measures of the syntactic
    and semantic distances between candidate solutions and the original buggy program.
    We compare S3’s repair effectiveness with state-of-the-art synthesis engines Angelix,
    Enumerative, and CVC4. S3 can successfully and correctly fix at least three times
    more bugs than the best baseline on datasets of 52 bugs in small programs, and
    100 bugs in real-world large programs. '
article_processing_charge: No
author:
- first_name: Xuan
  full_name: Le, Xuan
  last_name: Le
- first_name: Duc Hiep
  full_name: Chu, Duc Hiep
  id: 3598E630-F248-11E8-B48F-1D18A9856A87
  last_name: Chu
- first_name: David
  full_name: Lo, David
  last_name: Lo
- first_name: Claire
  full_name: Le Goues, Claire
  last_name: Le Goues
- first_name: Willem
  full_name: Visser, Willem
  last_name: Visser
citation:
  ama: 'Le X, Chu DH, Lo D, Le Goues C, Visser W. S3: Syntax- and semantic-guided
    repair synthesis via programming by examples. In: Vol F130154. ACM; 2017:593-604.
    doi:<a href="https://doi.org/10.1145/3106237.3106309">10.1145/3106237.3106309</a>'
  apa: 'Le, X., Chu, D. H., Lo, D., Le Goues, C., &#38; Visser, W. (2017). S3: Syntax-
    and semantic-guided repair synthesis via programming by examples (Vol. F130154,
    pp. 593–604). Presented at the FSE: Foundations of Software Engineering, Paderborn,
    Germany: ACM. <a href="https://doi.org/10.1145/3106237.3106309">https://doi.org/10.1145/3106237.3106309</a>'
  chicago: 'Le, Xuan, Duc Hiep Chu, David Lo, Claire Le Goues, and Willem Visser.
    “S3: Syntax- and Semantic-Guided Repair Synthesis via Programming by Examples,”
    F130154:593–604. ACM, 2017. <a href="https://doi.org/10.1145/3106237.3106309">https://doi.org/10.1145/3106237.3106309</a>.'
  ieee: 'X. Le, D. H. Chu, D. Lo, C. Le Goues, and W. Visser, “S3: Syntax- and semantic-guided
    repair synthesis via programming by examples,” presented at the FSE: Foundations
    of Software Engineering, Paderborn, Germany, 2017, vol. F130154, pp. 593–604.'
  ista: 'Le X, Chu DH, Lo D, Le Goues C, Visser W. 2017. S3: Syntax- and semantic-guided
    repair synthesis via programming by examples. FSE: Foundations of Software Engineering
    vol. F130154, 593–604.'
  mla: 'Le, Xuan, et al. <i>S3: Syntax- and Semantic-Guided Repair Synthesis via Programming
    by Examples</i>. Vol. F130154, ACM, 2017, pp. 593–604, doi:<a href="https://doi.org/10.1145/3106237.3106309">10.1145/3106237.3106309</a>.'
  short: X. Le, D.H. Chu, D. Lo, C. Le Goues, W. Visser, in:, ACM, 2017, pp. 593–604.
conference:
  end_date: 2017-09-08
  location: Paderborn, Germany
  name: 'FSE: Foundations of Software Engineering'
  start_date: 2017-09-04
date_created: 2018-12-11T11:49:19Z
date_published: 2017-09-01T00:00:00Z
date_updated: 2023-09-26T15:38:36Z
day: '01'
department:
- _id: ToHe
doi: 10.1145/3106237.3106309
external_id:
  isi:
  - '000414279300055'
isi: 1
language:
- iso: eng
month: '09'
oa_version: None
page: 593 - 604
project:
- _id: 25F5A88A-B435-11E9-9278-68D0E5697425
  call_identifier: FWF
  grant_number: S11402-N23
  name: Moderne Concurrency Paradigms
- _id: 25F42A32-B435-11E9-9278-68D0E5697425
  call_identifier: FWF
  grant_number: Z211
  name: The Wittgenstein Prize
publication_identifier:
  isbn:
  - 978-145035105-8
publication_status: published
publisher: ACM
publist_id: '6477'
quality_controlled: '1'
scopus_import: '1'
status: public
title: 'S3: Syntax- and semantic-guided repair synthesis via programming by examples'
type: conference
user_id: c635000d-4b10-11ee-a964-aac5a93f6ac1
volume: F130154
year: '2017'
...
---
_id: '962'
abstract:
- lang: eng
  text: 'We present a new algorithm for model counting of a class of string constraints.
    In addition to the classic operation of concatenation, our class includes some
    recursively defined operations such as Kleene closure, and replacement of substrings.
    Additionally, our class also includes length constraints on the string expressions,
    which means, by requiring reasoning about numbers, that we face a multi-sorted
    logic. In the end, our string constraints are motivated by their use in programming
    for web applications. Our algorithm comprises two novel features: the ability
    to use a technique of (1) partial derivatives for constraints that are already
    in a solved form, i.e. a form where its (string) satisfiability is clearly displayed,
    and (2) non-progression, where cyclic reasoning in the reduction process may be
    terminated (thus allowing for the algorithm to look elsewhere). Finally, we experimentally
    compare our model counter with two recent works on model counting of similar constraints,
    SMC [18] and ABC [5], to demonstrate its superior performance.'
alternative_title:
- LNCS
article_processing_charge: No
author:
- first_name: Minh
  full_name: Trinh, Minh
  last_name: Trinh
- first_name: Duc Hiep
  full_name: Chu, Duc Hiep
  id: 3598E630-F248-11E8-B48F-1D18A9856A87
  last_name: Chu
- first_name: Joxan
  full_name: Jaffar, Joxan
  last_name: Jaffar
citation:
  ama: 'Trinh M, Chu DH, Jaffar J. Model counting for recursively-defined strings.
    In: Majumdar R, Kunčak V, eds. Vol 10427. Springer; 2017:399-418. doi:<a href="https://doi.org/10.1007/978-3-319-63390-9_21">10.1007/978-3-319-63390-9_21</a>'
  apa: 'Trinh, M., Chu, D. H., &#38; Jaffar, J. (2017). Model counting for recursively-defined
    strings. In R. Majumdar &#38; V. Kunčak (Eds.) (Vol. 10427, pp. 399–418). Presented
    at the CAV: Computer Aided Verification, Heidelberg, Germany: Springer. <a href="https://doi.org/10.1007/978-3-319-63390-9_21">https://doi.org/10.1007/978-3-319-63390-9_21</a>'
  chicago: Trinh, Minh, Duc Hiep Chu, and Joxan Jaffar. “Model Counting for Recursively-Defined
    Strings.” edited by Rupak Majumdar and Viktor Kunčak, 10427:399–418. Springer,
    2017. <a href="https://doi.org/10.1007/978-3-319-63390-9_21">https://doi.org/10.1007/978-3-319-63390-9_21</a>.
  ieee: 'M. Trinh, D. H. Chu, and J. Jaffar, “Model counting for recursively-defined
    strings,” presented at the CAV: Computer Aided Verification, Heidelberg, Germany,
    2017, vol. 10427, pp. 399–418.'
  ista: 'Trinh M, Chu DH, Jaffar J. 2017. Model counting for recursively-defined strings.
    CAV: Computer Aided Verification, LNCS, vol. 10427, 399–418.'
  mla: Trinh, Minh, et al. <i>Model Counting for Recursively-Defined Strings</i>.
    Edited by Rupak Majumdar and Viktor Kunčak, vol. 10427, Springer, 2017, pp. 399–418,
    doi:<a href="https://doi.org/10.1007/978-3-319-63390-9_21">10.1007/978-3-319-63390-9_21</a>.
  short: M. Trinh, D.H. Chu, J. Jaffar, in:, R. Majumdar, V. Kunčak (Eds.), Springer,
    2017, pp. 399–418.
conference:
  end_date: 2017-07-28
  location: Heidelberg, Germany
  name: 'CAV: Computer Aided Verification'
  start_date: 2017-07-24
date_created: 2018-12-11T11:49:26Z
date_published: 2017-01-01T00:00:00Z
date_updated: 2023-09-22T09:58:02Z
day: '01'
department:
- _id: ToHe
doi: 10.1007/978-3-319-63390-9_21
editor:
- first_name: Rupak
  full_name: Majumdar, Rupak
  last_name: Majumdar
- first_name: Viktor
  full_name: Kunčak, Viktor
  last_name: Kunčak
external_id:
  isi:
  - '000431900900021'
intvolume: '     10427'
isi: 1
language:
- iso: eng
month: '01'
oa_version: None
page: 399 - 418
project:
- _id: 25F5A88A-B435-11E9-9278-68D0E5697425
  call_identifier: FWF
  grant_number: S11402-N23
  name: Moderne Concurrency Paradigms
- _id: 25F42A32-B435-11E9-9278-68D0E5697425
  call_identifier: FWF
  grant_number: Z211
  name: The Wittgenstein Prize
publication_identifier:
  issn:
  - '03029743'
publication_status: published
publisher: Springer
publist_id: '6443'
quality_controlled: '1'
scopus_import: '1'
status: public
title: Model counting for recursively-defined strings
type: conference
user_id: c635000d-4b10-11ee-a964-aac5a93f6ac1
volume: 10427
year: '2017'
...
