"Type-Driven Program Synthesis" by Nadia Polikarpova
Strange Loop Conference2 HN recommenders · recommended in 2 months, 2018-2024
15K views · 8 years ago · talk · evergreen
Nadia Polikarpova's Strange Loop talk on program synthesis driven by refinement types, as in Synquid. It shows how rich type specifications can be turned into verified, executable code.
HN points to it as a motivating introduction to what program synthesis is and what types can do for it.
38:36"A Little Taste of Dependent Types" by David Christiansen
Strange Loop Conference
48K views • 8 years ago
42:43"Propositions as Types" by Philip Wadler
Strange Loop Conference
143K views • 11 years ago
43:04"Stop Writing Dead Programs" by Jack Rusher (Strange Loop 2022)
Strange Loop Conference
468K views • 4 years ago
36:58"A (Not So Gentle) Introduction To Systems Programming In ATS" by Aditya Siram
Strange Loop Conference
26K views • 9 years ago
46:36Type-Driven Development in Idris — Edwin Brady
Scala World
26K views • 11 years ago
36:14Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt
ClojureTV
8K views • 9 years ago
43:23Edwin Brady - Idris 2: Type-driven development of Idris | Code Mesh LDN 18
Code Sync
20K views • 7 years ago
30:06"Tackling Concurrency Bugs with TLA+" by Hillel Wayne
Strange Loop Conference
24K views • 9 years ago
40:00"Agility & Robustness: Clojure spec" by Stuart Halloway
Strange Loop Conference
25K views • 10 years ago
56:58Philip Wadler - Propositions as Types (Lambda Days 2016)
Erlang Solutions
20K views • 10 years ago
50:49Domain Modeling Made Functional - Scott Wlaschin - KanDDDinsky 2019
KanDDDinsky
74K views • 6 years ago
40:20"Shen: A Sufficiently Advanced Lisp" by Aditya Siram
Strange Loop Conference
26K views • 12 years ago
1:12:10Practical Common Lisp
Google TechTalks
98K views • 19 years ago
1:04:35The Algebra of Algebraic Data Types
London Haskell
27K views • 13 years ago
59:03Breaking Down Programming Paradigms: APL's Surprising Learning Curve // Aaron Hsu // Dyalog '17
Dyalog User Meetings
7K views • 9 years ago
39:58"Production Prolog" by Michael Hendricks
Strange Loop Conference
58K views • 12 years ago
25:06"Making Impossible States Impossible" by Richard Feldman
elm-conf
63K views • 10 years ago
47:41"Programming Should Eat Itself" by Nada Amin
Strange Loop Conference
43K views • 12 years ago
1:01:39"Simple Made Easy" - Rich Hickey (2011)
Strange Loop Conference
219K views • 5 years ago
1:03:29Maybe Not - Rich Hickey
ClojureTV
181K views • 7 years ago
4 comments from Hacker News
Oh yeah, you just reminded me of this cool talk I saw at Strange Loop a while back. Not about the AI parts but re: program synthesis in Haskell: "Type-Driven Program Synthesis" by Nadia Polikarpova ▶ this video Links to more projects and papers by Prof. Polikarpova: link I think this is one of the main projects she discusses in the talk: link EDIT: meant to mention this too, which I think has been around a bit longer, not that I've ever used it in production: link
This is an active field of research. Search for "program synthesis". We are advancing, but the current state is... not mind-blowing yet (albeit somewhat cool!). See [1] for an example interactive demo and [2] for the corresponding presentation. [1] link [2] ▶ this video
For an introduction and motivation to TLA+ I recommend Hillel Wayne's talk Everything About Distributed Systems is Terrible [0] and basically anything he has written on his blog about the TLA+. I think following along with the TLA+ video course is really thorough and digestible once you've decided that you want to learn more [1]. You'll find the TLA+ Hyperbook is a useful reference and guide as you start specifying your own systems [2]. It has a number of examples and projects to work on. Eventually if you want to go deep after you've decided it's worth it for yourself, get into Specifying Systems the text book and bible of TLA+ [3]. Program Synthesis has a lot of research in it and is starting to show promising results. I'd say that while the research has been going on for a long time it's still rather new to industrial use... for a motivating talk and explanation on what program synthesis is try this one: ▶ this video [0] link [1] link [2] link [3] link
> Good specifications are often written at a level that generating executable code from them is often undecidable and almost always intractable in practice. What about modern dependently-typed meta languages like Idris and program synthesizers like Nadia Polikarpova's work on Synquid? Type-Driven Program Synthesis, by Nadia Polikarpova (StrangeLoop 2018) [video] ▶ this video MIT Comcom: Synquid program synthesizer, and more command-line tools for the web link Idris Software Foundations link