This is probably my favorite field for future ML development. It both covers the areas where we are weakest (compositionality, planning), but also is feasible for training (easy to generate samples and create objective functions, vs. say IRL tasks), and is immensely valuable if we succeed.<p>If an ML engineering agent that is <i>actually</i> comparable to a human is developed, things are going to we weird. fast.
I've worked a bit on inductive syntax-guided synthesis, but did it at the worst time -- right before it was made obsolete by LLMs: <a href="https://grgv.xyz/inductive_program_synthesis/" rel="nofollow">https://grgv.xyz/inductive_program_synthesis/</a>
I stumbled on the idea of Program Synthesis when I was looking to solve VMProtect's Mixed-Boolean-Arithmetic (MBA) expressions in my own VMP Decompiler. I tried experimenting with this project but had limited success:<p><a href="https://github.com/quarkslab/qsynthesis">https://github.com/quarkslab/qsynthesis</a><p>I have yet to try the project from Denuvo but it looks promising:<p><a href="https://github.com/DenuvoSoftwareSolutions/SiMBA">https://github.com/DenuvoSoftwareSolutions/SiMBA</a><p>If any commenter has other suggestions, would love to hear them!
I associate program synthesis pretty heavily with William Byrd following his demo in the second half of this talk:<p><a href="https://youtu.be/OyfBQmvr2Hc?feature=shared&t=4656" rel="nofollow">https://youtu.be/OyfBQmvr2Hc?feature=shared&t=4656</a>
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?