Building a path from language user to sophisticated DSL creator in Racket

Michael Ballantyne

Date: Wed, March 31, 2021
Time: 15:00
Room: Eelco's Zoom Room

Programmers in Racket gradually learn to create domain-specific languages, first via macros that serve as simple syntactic abstractions, and later as libraries of macros that work together to create complete DSLs. Racket’s macro technology smooths the way via expressive syntax matching and templating, automatic name hygiene, and safe separate compilation. However, conventional macros are limited: DSLs with static semantics and optimizing compilers remain difficult to implement and integrate with the host language. This talk describes our work on new tools to support these features. First, an architecture and reflective API for building extensible DSLs that macro-expand to a DSL core language, enabling traditional compilation techniques. Second, a work-in-progress design for a declarative meta-language to allow Racket programmers to create sophisticated DSLs without deep knowledge of the macro system.

Previous: |
Next: Burcu Kulahcioglu Ozkan |