Barliman is a prototype smart editor capable of program synthesis: given part of a program and a set of tests to pass, Barliman attempts to complete the program for you. This capability enables an interesting kind of test-driven development with partially-instantiated programs. Synthesis is performed using a relational interpreter written in the EDSL miniKanren, which will be familiar to users of Clojure’s `core.logic`. We will demonstrate the Barliman programming experience with several examples, showing what currently works well and what does not, discussing the implementation and where the difficulties come from. We will also discuss the design philosophies and grander vision of Barliman as a tool for thought, and what it will take to get us there.
University of Utah
William E. Byrd is a Postdoctoral Researcher in the U Combinator research group at the University of Utah. He is co-author of The Reasoned Schemer, and co-designer of several declarative languages: miniKanren (logic programming), Harlan (GPU programming), and Kanor (cluster programming). His StarCraft 2 handle is ‘Rojex’ (character code 715).
Gregory L. Rosenblatt
Gregory L. Rosenblatt is an independent researcher interested in improving programming tools to better suit human needs. He plays Go (aka Weiqi, Baduk) as a 5 dan.