Published Sep 3, 2019

Episode 379: Claire Le Goues on Automated Program Repair

Claire Le Goues delves into the cutting-edge world of automated program repair, examining how programming language constraints, heuristic and semantic approaches, and practical industry applications are transforming software development by enhancing debugging efficiency and introducing automated bug fixes.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Language Suitability

    The suitability of programming languages for automated repair is a nuanced topic. explains that languages like C offer flexibility due to their permissive compilers, allowing many edits, though not all are effective. In contrast, Java's stricter rules prevent ineffective changes, making it potentially easier to repair bugs 1. The choice of language often depends on tooling constraints, as researchers tend to stick with languages like C or Java to avoid redoing foundational work 2. Claire notes, "Having a compiler with opinions is probably useful," highlighting the balance between flexibility and constraint in language choice.

       

    Type Information

    Type information plays a varied role in automated repair processes. mentions that while some techniques use type constraints to guide patch generation, others do not rely heavily on type information 3. The effectiveness of these techniques often depends on the domain and the quality of the test harness available, as seen in Facebook's Android application testing 3. Claire elaborates on heuristic editing techniques, explaining that edits are often sourced from within the same codebase, ensuring relevance and context 4.

Related Episodes