regular expression ↓ |-------------| | Lexer | | Synthesizer | |-------------| | synthesizes ↓ |-------| int val = 10; → | Lexer | → int ID ASSIGN NUM ; |-------|
specification ↓ |-------------| | Program | | Synthesizer | |-------------| | synthesizes ↓ |---------| | Program | |---------|
Use a Domain-specific language (DSL) to limit the synthesis space.
Use VSA (Version Space Algebra) for compact representation.
The second IO example:
Intersection of VSAs