4 ms·
Perhaps I'm missing something, but is program synthesis just writing a compiler for a long-winded functional programming language? I'm not even clear if it will
by chilmers 3y ago
Perhaps I'm missing something, but is program synthesis just writing a compiler for a long-winded functional programming language? I'm not even clear if it will avoid bugs, since your specification could just as easily have a missing or mistaken constraint as the equivalent program?
- _iv 3y agoThis Wikipedia article is a very small slice of a large field[1]. SyGuS is a language to specify inputs and constraints meant to standardize the field. The main benefit to this standardization is to allow researchers to benchmark their synthesizers against others'. Naturally, this leads to an annual competition (SyGuS-Comp). There are other ways to specify your desired program, such as sets of input-output pairs, or natural language as others are discussing with LLMs. SyGuS is a denotational, rather than operational way to describe a program's behavior. If a synthesized program satisfies the specification given, then by definition it is bug free. It's possibly the largest problem facing the field that specifications are difficult to write, and often harder than just writing the code correctly yourself. I believe the S-expression based language is chosen primarily due to its easy parsing and generation. [1] https://people.csail.mit.edu/asolar/SynthesisCourse/Lecture1.htm https://people.csail.mit.edu/asolar/SynthesisCourse/Lecture1...