On this page:
The Racket School of Semantics and Languages 2017

The Racket School of Semantics and Languages 2017

Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi, Jay McCarthy, and Justin Pombrio

This summer school introduces attendees to the Racket philosophy of analyzing, modeling, and building languages.

The table below presents a concise summer school schedule. Most sessions will consist of a lecture part and a hands-on lab. Our goal is to lecture for less than 90 minutes and to give you at least 120 minutes of lab time. The lectures will introduce basic ideas; the labs will present practical exercises on these topics. We will have a break between lectures and labs.

By Wednesday afternoon, you might be exhausted from the breakneck speed of the school. Shriram K. will lecture on his experience with semantics re-engineering, but no lab is scheduled. Instead, feel free to hike a mountain, swim in the salt lake, or explore the U and SLC in any way you feel comfortable. If you’d rather hang around and work on something, some of us will be available to help you along.

Thursday afternoon Matthew F. will take you from extending languages to building complete languages. You will use a small amount of this material on Friday morning to build your first "hash lang."

Robby F.’s Friday afternoon lecture will cover his experience with random testing and how to best use Redex’s current random-testing facilities. Again, no lab is scheduled to follow this lecture. Instead, feel free to pick our individual and collective brains about various issues concerning languages, semantics, teaching and other related issues.

Postscript These notes have been adjusted to reflect the actual summer school schedule and have been updated with links to code and other materials used during the lectures and labs.


Morning (9:00 – 12:30)


Afternoon (13:30 – 17:00)



From the Lambda Calculus to Redex


Modeling Functional Expression Languages


Lab Playing with PCF-value


Lab Modeling PCF-value



Modeling Functional Languages


Lab The Mystery Languages of Functions


Lab The Mystery Languages of Records




Modeling Imperative-Functional Languages


Lab The Mystery Languages of Variables


Lab Modeling Event Loops


Shriram K. Semantics Re-engineering



Extending Languages


Matthew F. Building Languages


Lab Practice with Macros


Lab Practice with Hash Langs



Lab Testing Models, Testing Languages


Robby F. Advanced Testing


Specification vs Implementation


consult with staff

Figure 1: Workshop schedule