Program synthesis is a promising technique that dismantles programming barriers by automatically generate code from high-level user specifications, such as input-output examples and demonstrations. A long-standing challenge in program synthesis is the inherent ambiguity in user specifications, leading to plausible programs that match user-intended behavior on given inputs but deviate on unseen inputs.
Regae is an interactive program synthesizer for regular expressions. It helps users to disambiguate their intent by allowing them to specify how different parts of individual examples should be treated by a synthesizer via light-weight annotations. Furthermore, it reduces the cognitive load of understanding and validating synthesized programs by revealing how a synthesized program behave on additional examples from a hypothetical input space. UIST 2020 paper code