This talk will show how the miniKanren constraint logic programming language can be used to automatically generate Scheme code by example, a form of test-driven development on steroids. Our approach is unusual: we define an interpreter for Scheme as a relation, rather than as a standard function. We can use this "relational interpreter" to perform program synthesis, to automatically turn a proof checker into a theorem prover, to generate quines, and to perform other bizarre and fascinating tasks. We will also look at the current version of Barliman, a prototype Interactive Development Environment that will hopefully inspire future IDEs.
William E. Byrd is a researcher at the University of Alabama Birmingham. He is co-author of 'The Reasoned Schemer', and co-designer of the miniKanren relational programming language. Will is also interested in molecular biology, nanotechnology, and the history of writing.