Turning a Tower of Babel into a Beautiful Racket


Matthew Flatt

Matthew Flatt is an associate professor of computer science at the University of Utah. He is one of the developers of the Racket programming language (formerly known as PLT Scheme) and a co-author of the introductory programming textbook "How to Design Programs". He received his PhD in computer science from Rice University in 1999 and joined Utah in 1999.

George Fox Lt5/6

No matter how language designers try to create elegant, consistent, all-powerful programming languages, the pressures of real-world programming tasks consistently drive the demand for new programming constructs and domain-specific languages. Extensible languages such as Racket address this problem by allowing programmers to create new constructs and DSLs as needed. Racket inherits its basic approach to extensibility from Lisp and Scheme, but Racket's unique features enable an even greater degree of language extension and composition. After a brief refresher on Lisp- and Scheme-style extensibility, this talk will explain how Racket is evolving to solve some stubborn problems in Lisp-style extensibility, such as support for static types and non-parenthesized syntax. Key elements of the solution include Racket's module system, its notion of "languages" that go beyond S-expression manipulation, and its constructs to manage the trade-off between reflection and encapsulation.