William E. Byrd

Research Associate, U Combinator research group
Office 3153 in MEB, School of Computing, University of Utah
webyrd@gmail.com    Will.Byrd@utah.edu    Cell: (812) 320-8505

Twitter logo GitHub logo Google g+ logo YouTube logo

My Research | Job Search | Selected Publications | Upcoming Talks | Recent Talks | Interviews | Teaching

My Research

My primary interest is in writing programs relationally, without distinguishing between input and output arguments. Over the past decade my colleagues and I have developed relational interpreters, term reducers, type inferencers, and theorem provers, all of which are capable of program synthesis, or of otherwise running "backwards." All of these programs are written in miniKanren, a language specifically designed for relational programming, and described in The Reasoned Schemer.

Job Search

I am seeking a tenure-track computer science faculty position at an outstanding university or college.

Curriculum Vitae (PDF file)
Research Statement (PDF file)
Teaching Statement (PDF file)

Selected Publications

Theses

William E. Byrd
Relational Programming in miniKanren: Techniques, Applications, and Implementations.
Indiana University, Bloomington, IN,
September 30, 2009.
[Full Dissertation (PDF Document)]

Books

Daniel P. Friedman, William E. Byrd and Oleg Kiselyov
The Reasoned Schemer.
The MIT Press, Cambridge, MA, 2005.
[Complete source code from the book--R5RS Scheme (GitHub)]

The Reasoned Schemer front cover

Refereed conference and workshop papers

William E. Byrd, Daniel P. Friedman, Ramana Kumar, and Joseph P. Near.
A Shallow Scheme Embedding of Bottom-Avoiding Streams.
To appear in a special issue of Higher-Order and Symbolic Computation, in honor of Mitchell Wand's 60th birthday.
[Preprint (PDF file)]

William E. Byrd, Eric Holk, and Daniel P. Friedman.
miniKanren, Live and Untagged: Quine Generation via Relational Interpreters (Programming Pearl).
In the Proceedings of the 2012 Workshop on Scheme and Functional Programming, Copenhagen, Denmark, 2012.
[Full paper (PDF file)]
[Complete source code--R6RS Scheme (GitHub)]

Claire E. Alvis, Jeremiah J. Willcock, Kyle M. Carter, William E. Byrd, and Daniel P. Friedman.
cKanren: miniKanren with Constraints.
In Proceedings of the 2011 Workshop on Scheme and Functional Programming (Scheme '11), Portland, OR, 2011.
[Full paper (PDF file)]
[Complete source code--R6RS Scheme (GitHub)]

Eric Holk, William E. Byrd, Nilesh Mahajan, Jeremiah Willcock, Arun Chauhan, and Andrew Lumsdaine.
Declarative Parallel Programming for GPUs.
In Proceedings of the International Conference on Parallel Computing (ParCo), Ghent, Belgium, 2011.
[Complete source code--R6RS Scheme (GitHub)]
[Full paper (PDF file)]

Eric Holk, William E. Byrd, Jeremiah Willcock, Torsten Hoefler, Arun Chauhan, and Andrew Lumsdaine.
Kanor: A Declarative Language for Explicit Communication.
In Proceedings of the Thirteenth International Symposium on the Practical Aspects of Declarative Languages (PADL),
Austin, TX, pp. 190-204, 2011.
[Full paper (PDF file)]

Andrew W. Keep, Michael D. Adams, Lindsey Kuper, William E. Byrd, and Daniel P. Friedman.
A Pattern-matcher for miniKanren -or- How to Get into Trouble with CPS Macros
In Proceedings of the 2009 Workshop on Scheme and Functional Programming,
Cal Poly Technical Report CPSLO-CSC-09-03, pp. 37-45, 2009.
[Full proceedings (PDF file)]

Joseph P. Near, William E. Byrd and Daniel P. Friedman.
alphaleanTAP: A Declarative Theorem Prover for First-Order Classical Logic
In Proceedings of the 24th International Conference on Logic Programming (ICLP 2008),
LNCS vol. 5366, Springer-Verlag, Heidelberg, pp. 238-252, 2008.
[Full paper (PDF file)]
[Complete source code--R6RS Scheme and Prolog (.zip file)]

Oleg Kiselyov, William E. Byrd, Daniel P. Friedman and Chung-chieh Shan
Pure, declarative, and constructive arithmetic relations (declarative pearl)
In Proceedings of the 9th international symposium on functional and logic programming,
ed. Jacques Garrigue and Manuel Hermenegildo, pp. 64-80.
LNCS vol. 4989, Springer, 2008.
[Full paper (PDF file)]

William E. Byrd and Daniel P. Friedman
alphaKanren: A Fresh Name in Nominal Logic Programming
Proceedings of the 2007 Workshop on Scheme and Functional Programming,
Universite Laval Technical Report DIUL-RT-0701, pp. 79-90.
[Full paper (PDF file)]
[Author's revised version (recommended) (PDF file)]
[Revised R5RS-compliant source code (.scm file)]

William E. Byrd and Daniel P. Friedman
From Variadic Functions to Variadic Relations: A miniKanren Perspective.
Proceedings of the 2006 Scheme and Functional Programming Workshop,
University of Chicago Technical Report TR-2006-06, 2006, pp. 105-117.
[Full paper (PDF file)]

Upcoming Talks

Program Synthesis Using miniKanren (with Daniel P. Friedman)
Strange Loop, St. Louis, MO, September 17, 2014.

Recent Talks

miniKanren Summer School (with Daniel P. Friedman and Jason Hemann)
University of Utah, Salt Lake City, UT, May 27 and 29, 2014

Logic Night
Lambda Lounge Utah, Sandy, UT, May 13, 2014

We Need Real Tools for Generating Type Inferencers (with Nada Amin)
Off-the-Beaten Track (co-located with POPL 2014), San Diego, CA, January 25, 2014.

miniKanren Tutorial (with Daniel P. Friedman)
Practical Aspects of Declarative Languages (PADL), San Diego, January 23, 2014.

Relational Programming in miniKanren
The Computer Laboratory, University of Cambridge, Cambridge, England, December 6, 2013.

Meta-Programming in Logic Programming (with Nada Amin)
Code Mesh 2013, London, England, December 5, 2013.

From Greek to Clojure! (with Nada Amin)
Clojure/conj, Alexandria, VA, November 14, 2013.

A Relational Exploration of the Chomsky Hierarchy (with Daniel P. Friedman)
Strange Loop, St. Louis, MO, September 18--20, 2013.

Fun with Relational Interpreters in miniKanren (with Daniel P. Friedman)
flatMap, Oslo, Norway, May 14, 2013.

The Unreasonable Schemers (guest of honor, with Daniel P. Friedman)
miniKanren Confo (associated with Clojure/West), Portland, OR, March 19, 2013.

miniKanren Philosophy (with Daniel P. Friedman)
Clojure/conj, Raleigh, NC, November 16, 2012.

Relational Programming in miniKanren (with Daniel P. Friedman)
Strange Loop, St. Louis, MO, September 24, 2012.

miniKanren, Live and Untagged: Quine Generation via Relational Interpreters
Scheme and Functional Programming Workshop, Copenhagen, Denmark, September 9, 2012.

Declarative Parallel Programming
Computer Science Department, Colorado State University, Ft. Collins, CO, February 29, 2012.

3D Printing, Open Hardware, and the DIY Revolution
CATALYST, Informatics and Computing Student Association, Indiana University, Bloomington, IN, February 18, 2012.

Generating Quines Using a Relational Interpreter
Indiana University Logic Seminar, Bloomington, IN, February 15, 2012.

3D Printing, Open Hardware, and the DIY Revolution
Technology Management Club, Kelley School of Business, Indiana University, Bloomington, IN, February 7, 2012.

miniKanren ("Untalk", with Daniel P. Friedman)
Clojure/conj, Raleigh, NC, November 10, 2011.

3D Printing, Open Hardware, and the DIY Revolution
Mechanical Engineering Technology (MET) Department, Purdue University, West Lafayette, IN, October 12, 2011.

Animatronic Kittehs, 3D Printers, and Rogue Game Studios --or-- Why Computer Science Education Should be Just-in-Time, not Just-in-Case, and Why (Epic) Failure Should Always be an Option
Indiana University Programming Languages Group, Bloomington, IN, April 15, 2011.

Interviews

Functional Geekery Episode 9 -- William E. Byrd
Recorded by Proctor, Monday, April 21, 2014

William Byrd on Logic and Relational Programming, miniKanren
Recorded by InfoQ at Code Mesh 2013, London, England, December, 2013

Teaching

C211 Introduction to Computer Science (undergraduate)
Course Instructor, Fall 2011 (Honors Section), Fall 2010 (Honors Section), Summer 2005
Associate Instructor, Honors Section, Fall 2003

C311 Programming Languages (undergraduate)
Associate Instructor, Spring 2009, Fall 2008, Spring 2008, Fall 2007, Spring 2007, Fall 2006, Spring 2006, Fall 2005, Spring 2005, Fall 2004, Spring 2004

B521 Programming Languages (graduate)
Associate Instructor, Fall 2008, Fall 2007, Fall 2006, Fall 2005, Fall 2004

A290 Tools for Computing: Arduino Development
Course Instructor, Spring 2012



Photo of William E. Byrd