Synthesizing regular expressions from examples for introductory automata assignments
We present a method for synthesizing regular expressions for introductory automata assignments. Given a set of positive and negative examples, the method automatically synthesizes the simplest possible regular expression that accepts all the positive examples while rejecting all the negative examples. The key novelty is the search based synthesis algorithm that leverages ideas from over and under approximations to effectively prune out a large search space. We have implemented our technique in a tool and evaluated it with non trivial benchmark problems that students often struggle with. The results show that our system can synthesize desired regular expressions in 6.7 seconds on the average, so that it can be interactively used by students to enhance their understanding of regular expressions.