Abstract
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.
Original language | English |
---|---|
Pages (from-to) | 70-80 |
Number of pages | 11 |
Journal | ACM SIGPLAN Notices |
Volume | 52 |
Issue number | 3 |
DOIs | |
Publication status | Published - 2016 Oct 20 |
Keywords
- Regular expression
- program synthesis
- programming by example
ASJC Scopus subject areas
- Computer Science(all)