"Type-Driven Program Synthesis" by Nadia Polikarpova
Strange Loop Conference2 HN recommenders · 2018–2024
15K views · talk · evergreen · Uploaded 2018-10-16
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.
49:55How Python was Shaped by leaky Internals, Armin Ronacher, Flask framework
Видео с мероприятий {speach!
46:09Why Isn't Functional Programming the Norm? – Richard Feldman
Metosin
1:03:29Maybe Not - Rich Hickey
ClojureTV
7:48Conway's Game Of Life in APL
Dyalog
1:12:56Lecture 1A | MIT 6.001 Structure and Interpretation, 1986
MIT OpenCourseWare
1:42:09Crockford on JavaScript - Volume 1: The Early Years
YUI Library
53:31Growing a Language, by Guy Steele
Bill Pugh
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
4 comments from Hacker News
> 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] [VIDEO] MIT Comcom: Synquid program synthesizer, and more command-line tools for the web [LINK] Idris Software Foundations [LINK]
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: [VIDEO] [0] [LINK] [1] [LINK] [2] [LINK] [3] [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] [VIDEO]
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 [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]