WG211/M222Fischer

From WG 2.11
Jump to: navigation, search

Grammars are software too, but like other software they can contain bugs, too. How can we automatically find, and more importantly, fix these bugs?

This talk describes gfixr, the first tool that automatically repairs faults in context-free grammars: given a grammar that fails some tests in a test suite, it iteratively and gradually transforms the grammar until all tests pass. Our core idea is to use spectrum-based fault localization to identify promising repair sites, and to apply grammar patches at these sites whenever they satisfy explicitly formulated pre-conditions necessary to potentially improve the grammar.

In passive repair, we only repair against a fixed input test suite as target.In active repair, we exploit an oracle in the form of a black-box parser for the target language to incorporate a test suite enrichment into the repair process. We generate additional tests from each repair candidate and use the oracle to ascertain the outcome of each of these tests. We show that both variants are effective in fixing real faults in grammars but that active repair is more precise than passive repair.

Joint work with Moeketsi Raselimo.

File:Fischer-Delft-GrammarRepair.pptx