Combination of formal methods, AI and software engineering to produce quality code
Challenges:
- Logic: not all specification can be translated in pure logical terms
- Examples: explaining a concept through examples may not be enough to cover all the corner cases
- Natural language: too high level for certain problems
Framework for code synthesis
- DSL (domain specific languages)
- logic modulo theories
- logic programming (see prolog (programming language))
- functional programming
- code as text (LLM)