--- category: academic type: academic person: Yanxin Lu date: 2015-04 source: engi600_2015.pptx --- # ENGI 600: Data-Driven Program Repair Yanxin Lu, Swarat Chaudhuri, Christopher Jermaine, Joe Warren, and Scott Rixner. 12 slides. ## Slide 1: Title Data-Driven Program Repair ## Slide 2: Debugging is difficult ## Slide 3: Related work - Talus, tutoring system (Murray, 1986) — reference program, program analysis - Mutation (Debroy and Wong, 2010) — predefined rules for mutating programs ## Slide 4: Data-driven program repair - Code database for evaluatePoly - Incorrect Program → Correct Program ## Slide 5: EvaluatePoly - A program which evaluates polynomials - Poly: a list of coefficients - X: the x value in the polynomial ## Slide 6: Similar and correct implementations - Distance between programs - Incorrect Program → Code Database → Correct Programs → Template Generation ## Slide 7: Template Generation - Find differences and replace them with holes - Ignore variable names ## Slide 8: Filling in the Holes - Search for ways to replace holes - Variable Renaming ## Slide 9: Variable Renaming - Rename variables in the good program ## Slide 10: Unit Testing - Filter all incorrect fixes using unit testing - If multiple correct fixes, choose the most similar one ## Slide 11: Experiment ## Slide 12: Conclusion - Data-driven program repair - Effective in fixing small incorrect programs - Computer science education — same mistakes