On this page:
Racket School 2019:  
The “How to Design Languages” Track

Racket School 2019:
The “How to Design Languages” Track

Matthias Felleisen, Matthew Flatt, Robby Findler, Jay McCarthy, Jesse Tov

This summer school track introduces attendees to the Racket way of language-oriented programming and language building.

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 provide you with a chance to get your hands dirty with practical exercises on the lecture topics.

After a brief motivational overview lecture on Monday morning, the first four days are dedicated to the corner stones of building languages: compile-time functions, languages as modules, and typed languages. On Friday, we will give you a chance to put everything together in an extended lab exercise.

We will also arrange a session when you will have a chance to ask questions or just talk to the us about HtDL issues.


Morning (9:00 – 12:30)


Afternoon (13:30 – 17:00)





Language-Oriented Programming


Language Extensions via Macros


Macro Expansion


Lab Simple Macros





Advanced Racket Macros


Lexical Scope, (Un)Hygienic Macros


Lab Syntax Patterns & Classes


Lab Comfortable Macros





Modules, Macros, Languages


More Language Variations


Lab Languages via Macros


Lab Languages and Readers





Types and Type Checking


Typed Languages with Turnstile



Lab My First Turnstile Language





Two Techniques


Some Language Gems


Extended Lab Regexps



Figure 1: Workshop schedule