Program synthesis is cool. Learn more about it! Deterministic methods aren't as useful as they sound… a complete specification that can generate a program **is** the program, and is usually just harder than writing the program that follows that specification - though it does act as a second implementation that can precisely validate the first. If we recognize that we're okay with some undefined behavior, we can describe and synthesize programs with a series of property tests; this can be useful for checking work or if we have a human in the loop to validate everything we're generating (but in this case, we want nondeterminism, deep learning and these sorts of things). [Question Selection for Interactive Program Synthesis (PLDI 2020 - PLDI Resear…](https://pldi20.sigplan.org/details/pldi-2020-papers/65/Question-Selection-for-Interactive-Program-Synthesis) [Writing a Test Case Generator for a Programming Language](https://fitzgeraldnick.com/2020/08/24/writing-a-test-case-generator.html): Generating test cases (fuzzing?) for WASM. [Why care about Program Synthesis](https://www.zinkov.com/posts/2019-02-17-why-program-synthesis/)