"Do What I Mean": The History of AI and Program Synthesis
summary
A concise lineage from 50 years of program synthesis to today's LLM coding shows concrete tools and results: FlashFill and successor FlashMeta use backward semantics plus version space algebras to intersect millions of candidate programs; Wrangler/Trifacta synthesizes ETL transformations interactively; model checking with CBMC produces counterexamples for buggy C; MIPS has ~1.37 billion valid instructions, eight-instruction programs outnumber card shuffles by ~10,000× and nine-instruction programs exceed atoms by ~100×; a Python Towers-of-Hanoi generator required one corrective prompt to run.
AI-written summary · about
chapters (12)
- 0:00Introduction and welcome
- 1:42Defining program synthesis
- 6:59Real-world applications
- 12:01Specifying program intent
- 16:38Validating programs
- 20:11Searching program spaces
- 24:30Programming by example
- 27:20FlashMeta case study
- 30:13Improving existing programs
- 36:13LLMs and program synthesis
- 38:00Philosophical questions
- 40:08Conclusion and themes
related talks
54mA World Without Programmers?
49mAutomated Program Generation from Input-Output Examples
11mWriting Programs! That Write Other Programs!!
22mTowards Automated Verification of LLM-Synthesized C Programs
26mThe present and future of programming with AI (Keynote)
45mProgrammer’s Apprentice Season 2: Future Directions in AI-assisted Coding
38mAutomatically Synthesising Programs that We Can Trust
01h 04mInvited Talk: Finding Good Programs by Avoiding Bad Ones
