We demonstrate how to implement a small, shallowly-embedded relational programming language. During our talk, we will live-code a full implementation, in but a handful of lines. We explain both the embedded language's constructs and features requi... Read more
Logic programming is a technique applicable to solving a wide variety of tasks in an elegant fashion and makes an attractive addition to any programmer's toolbox. But what if logic programming isn't available in your favorite language? We will sho... Read more
We will give a tour of functional and relational interpreters in Scheme and the logic-programming language miniKanren. We will begin with a traditional interpreter for a Scheme-like language in Scheme, and will ultimately develop an interpreter fo... Read more
We will teach attendees how to use the relational (logic) language miniKanren to write several relational interpreters and reducers capable of automatically synthesizing recursive, symbolic programs, including quines (programs that evaluate to the... Read more
It is an unfortunate fact that there exists still a divide between the logic- and functional-programming communities. This is despite the fact that they are both attempting to achieve similar ends: declarative programming, where we specify what, n... Read more
We will show how to encode deterministic and non-deterministic finite automata, push-down automata, and Turing Machines in miniKanren, a domain-specific language for relational (pure logic) programming. In addition to accepting strings for a given... Read more
Claim your profile today and start building your speaker history.
Daniel P. Friedman is Professor of Computer Science at Indiana University. He is co-author of The Little Schemer, The Seasoned Schemer, The Reasoned Schemer, Scheme and the Art of Programming, and Essentials of Programming Languages, 3rd Edition, all published by MIT Press.