Barliman: trying the halting problem backwards, blindfolded - William Byrd, Greg Rosenblatt
ClojureTV3 HN recommenders · recommended in 2 months, 2017-2024
8K views · 9 years ago · talk · evergreen
A Clojure/conj 2016 talk demoing Barliman, a prototype smart editor that does program synthesis. Given a partial program and tests, it completes the program using a relational interpreter written in miniKanren.
HN people point to it as an amazing demonstration of relational programming and program synthesis that still looks exciting after LLM code generation.
46:17miniKanren - Dan Friedman and William Byrd
ClojureTV
10K views • 13 years ago
39:40"Type-Driven Program Synthesis" by Nadia Polikarpova
Strange Loop Conference
15K views • 8 years ago
1:14:52Effective Programs - 10 Years of Clojure - Rich Hickey
ClojureTV
176K views • 9 years ago
1:02:26Solving Problems the Clojure Way - Rafal Dittwald
Clojure/north
87K views • 7 years ago
32:44Clojure in a nutshell by James Trunk
Func Prog Sweden
104K views • 5 years ago
43:31Analyzing Programs with Z3
Compose Conference
24K views • 10 years ago
53:56Expert to Expert: Rich Hickey and Brian Beckman - Inside Clojure
jasonofthel33t
119K views • 13 years ago
36:42Bottom Up vs Top Down Design in Clojure - Mark Bastian
ClojureTV
29K views • 10 years ago
49:09Debugging with the Scientific Method - Stuart Halloway
ClojureTV
25K views • 10 years ago
1:01:39"Simple Made Easy" - Rich Hickey (2011)
ClojureTV
434K views • 5 years ago
42:25Glenn Vanderburg - Cló: The Algorithms of TeX in Clojure
ClojureTV
9K views • 11 years ago
1:07:10Brian Beckman: Don't fear the Monad
jasonofthel33t
415K views • 13 years ago
42:43"Propositions as Types" by Philip Wadler
Strange Loop Conference
143K views • 11 years ago
1:28:59Clojure for Lisp Programmers Part 1 - Rich Hickey
ClojureTV
25K views • 13 years ago
41:09ClojureScript for Skeptics - Derek Slager
ClojureTV
72K views • 10 years ago
1:31:06William Byrd on "The Most Beautiful Program Ever Written" [PWL NYC]
PapersWeLove
367K views • 9 years ago
1:00:58The Next Five Years of ClojureScript - David Nolen
Metosin
19K views • 10 years ago
1:03:31Brian Goetz - Stewardship: the Sobering Parts
ClojureTV
39K views • 11 years ago
56:58Philip Wadler - Propositions as Types (Lambda Days 2016)
Erlang Solutions
20K views • 10 years ago
1:12:10Practical Common Lisp
Google TechTalks
98K views • 19 years ago
4 comments from Hacker News
Have you checked out any of the minikanren logic programming environments people have implemented in scheme? The Reasoned Schemer is an accessible introduction to that space if you’re not put off by the socratic-themed dialogue. & the Barliman demo is still pretty exciting even after LLM codegen. ▶ this video
You might enjoy this amazing talk. I've linked to a part when the next 20 seconds of explanation turns the amazing up to 11. ▶ this video
For anyone who finds this topic interesting, you might be interested in the following resources: link The second edition of `The Reasoned Schemer` (MIT Press, 2018): link The Clojure/conj 2016 talk Greg Rosenblatt and I gave on Barliman: ▶ this video `A Unified Approach to Solving Seven Programming Problems (Functional Pearl)`, William E. Byrd, Michael Ballantyne, Gregory Rosenblatt, Matthew Might (ICFP 2017) (Open Access): link and the related talk: link and Nada Amin's interactive version of the paper: link Cheers, --Will
Other search algorithms can take up lots of memory to store progress they've made down different paths. Having only one active state also lets you map unification down to efficient low level cpu operations. If you have multiple states, you either have to copy lots of data when you fork the state or you use a persistent data structure but can't use side effects, so everything is a bit slower. It's a tradeoff though. I work on miniKanren, which is a logic programming language with a complete search that doesn't hit the nontermination issues you mention. The complete search lets us do some pretty cool stuff with program synthesis (though we're not about to put any programmers out of business just yet): ▶ this video Note that you can implement iterative deepening depth first search on top of prolog if you want a complete search there. Iterative deepening takes a little more time but avoids the memory problems with breath-first. SWI has tools built in to help there: link And I believe Ciao implements its iterative deepening library with a meta-interpreter: link