SemFix: Program repair via semantic analysis
By Hoang D. T. Nguyen, Dawei Qi, Abhik Roychoudhury, Satish Chandra. International Conference on Software Engineering, 2013
776 citations recorded by the source corpus.
Subfields: Information Systems, Software
View Paper: https://www.semanticscholar.org/paper/05607111cf79330d56164a10d351dbf94e2cfa44
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Information Systems
- Tien Nhut Nguyen
- Charles Sutton
- Michael Pradel
- Rishabh Singh
- Claire Le Goues
- Premkumar T. Devanbu
- Earl T. Barr
- Michele Tufano
In Software
- Claire Le Goues
- Rishabh Singh
- Tien Nhut Nguyen
- Michael Pradel
- Abhik Roychoudhury
- Martin C. Rinard
- Fan Long
- Charles Sutton
Citations in the corpus
- History Driven Program Repair (2016, methodology): “SemFix leverages test cases as implicit program specification to guide the patch synthesis process.”
- TBar: revisiting template-based automated program repair (2019, methodology): “…[5, 49], there is a momentum in minimizing the time-to-fix intervals by APR. Recently, various APR approaches [7, 8, 13, 14, 17, 19, 21, 22, 25, 27, 33, 34, 36, 37, 39, 45, 48, 61, 63, 71, 72] have been proposed, aiming at reducing manual debugging efforts through automatically generating patches.”
- Neuro-Symbolic Program Corrector for Introductory Programming Assignments (2018, methodology): “SemFix [18] uses a combination of symbolic execution, constraint solving, and program synthesis to automatically derive repair expressions for a buggy program given a set of testcases.”
- CodeScope: An Execution-based Multilingual Multitask Multidimensional Benchmark for Evaluating LLMs on Code Understanding and Generation (2023, methodology): “For automatic code repairing, the semantic-based repairing techniques develop with the help of a specification for the intended program behavior (Nguyen et al., 2013b; Weimer et al., 2009; Long and Rinard, 2015; Qi et al., 2014).”
- Automatic patch generation by learning correct code (2016, background): “• Large Applications: Unlike many previous patch generation systems, which work with small programs with hundreds of lines of code [14, 23, 30, 31], Prophet generates correct patches for large, real-world applications with tens of thousands to a million lines of code or more.”
- An Empirical Study on Learning Bug-Fixing Patches in the Wild via Neural Machine Translation (2018, methodology): “e avoid over-fitting patches to test cases. A complementary set of repair techniques leverage program analysis and program synthesis to repair programs by constructing code with particular properties [36,41,52,53,61,64,78,93]. Some approaches perform automated program repair by searching the fix amo”
- AutoCodeRover: Autonomous Program Improvement (2024, neutral): “Semantics-based APR techniques [22, 24] generate patches by formulating a repair constraint that needs to be satisfied based on a given test suite specification, and then solving the repair constraint to generate patches.”
- Learning to Synthesize Programs as Interpretable and Generalizable Policies (2021, background): “[106] Hoang Duong Thien Nguyen, Dawei Qi, Abhik Roychoudhury, and Satish Chandra.”
- Staged program repair with condition synthesis (2015, methodology): “SemFix and MintHint: SemFix [26] and MintHint [16] replace the faulty expression with a symbolic value and use symbolic execution techniques [4] to find a replacement expression that enables the program to pass all test cases.”
- Angelix: Scalable Multiline Program Patch Synthesis via Symbolic Analysis (2016, methodology): “e, angelic forest), we also capitalize on the techniques successfully used in our previous work SemFix [26], such as controlled symbolic execution.”
- Is the cure worse than the disease? overfitting in automated program repair (2015, methodology): “, via AutoFixE [46, 60] (for Eiffel code) and SemFix [43] (for C).”
- Automated program repair (2019, methodology): “SemFix [20], which is representative for constraint-based techniques, substitutes the faulty condition in line 6 with an abstract function f (a,b, c ) on the live variables.”
- Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs (2018, methodology): “Recent test-suite based repair approaches include the work by Le Goues et al. [27], Nguyen et al. [38], Kim et al. [24].”
- Post-compiler software optimization for reducing energy (2014, methodology): “Stochastic search methods are increasingly successful at evolving and repairing off-the-shelf software [14, 26, 33, 42, 65].”
- The ManyBugs and IntroClass Benchmarks for Automated Repair of C Programs (2015, methodology): “Although not indicative of all program repair approaches, GenProg, AE and TrpAutoRepair represent a family of generate-and-validate repair architectures based around testing, and GenProg has been used as a comparison baseline in several evaluations (e.g., [12], [14], [22], [52]).”
- A survey of the use of crowdsourcing in software engineering (2017, methodology): “Work on automated repair has also harvested human developed patches in order to improve the automated reparation process (Nguyen et al., 2013).”
- SQLizer: query synthesis from natural language (2017, methodology): “…refinement strategy in Sqlizer is inspired by prior work on fault localization [Ball et al. 2003; Groce and Visser 2003; Jones and Harrold 2005; Jones et al. 2002; Jose and Majumdar 2011a,b] and program repair [Goues et al. 2012; Long and Rinard 2015, 2016; Nguyen et al. 2013; Weimer et al. 2009].”
- RepairAgent: An Autonomous, LLM-Based Agent for Program Repair (2024, neutral): “…the challenge of automatically fixing bugs [1], including techniques based on manually designed [2], [3] and (semi-)automatically extracted [4], [5], [6] fix patterns, based on symbolic constraints [7], [8], [9], and various machine learning-based approaches [10], [11], [12], [13], [14], [15], [16].”