miniKanren is an embedded constraint logic programming language designed for writing programs as *relations*, rather than as functions or procedures. Unlike a function, a miniKanren relation makes no distinction between its inputs and outputs, leading to a variety of fascinating behaviors. For example, an interpreter written as a relation can also perform code synthesis, symbolic execution, and many other tasks.
This talk will introduce the ideas of relational programming and miniKanren, demonstrate the current state of relational programming through a series of examples, and explore the advancements needed to make relational programming fulfill its promise.
- give an introduction to miniKanren and relational programming
- show interesting relational programs, such as a relational interpreter
- demonstrate the remarkable flexibility of these relational programs
- show the current limitations of this programming style
- present a long-term vision, and a concrete medium-term plan, for making relational programming more useful
- Anyone interested in the long-term promise of very high-level declarative programming.
William E. Byrd is a Postdoctoral Researcher in the School of Computing at the University of Utah. He is co-author of 'The Reasoned Schemer', and is co-designer of the miniKanren relational programming language. He is also interested in the intersection of programming languages and synthetic biology.