November 8, 2022 - 5:00 pm CET

Virtual Meetup – Michael Ballantyne

Abstract

Language workbenches and macro systems each aim to allow programmers to easily build DSLs. The two approaches have different and complementary advantages. Macros allow programmers to incrementally develop DSLs by creating syntactic abstractions over patterns they encounter in their code. “Languages as libraries” of macros are easy to integrate into a program. A user simply imports the library and does not need to configure build tools or IDEs.
Language workbenches are excellent for creating larger-scale DSLs. They provide declarative metalanguages for specifying DSL elements such as syntax, name binding, and typing rules. Using these declarations, the language workbench generates a compiler and IDE services. Michael will present a “language workbench as a library” in the form of a metalanguage built on top of Racket’s macro system. The metalanguage allows programmers to conveniently develop a DSL in a Racket library while specifying the syntactic structure and binding rules of the DSL declaratively. The metalanguage hides the complicated operational details of working with Racket’s macro API.

Biography

Michael is a PhD student advised by Matthias Felleisen at Northeastern University. He works on making Racket a better host for domain-specific languages. He previously contributed to the Turnstile type system metalanguage and to the miniKanren logic programming language.
Michael Ballantyne web page: https://mballantyne.net/

How to join the event:

To avoid security issues is now necessary to register for the meeting. The registration should be necessary just once and be valid for all the next meetings you will participate in. Follow these steps:

  1. Register yourself to the community on theĀ Homepage
  2. You will receive a confirmation email containing all the information about joining the meeting.
  3. Add to your calendar
  4. Enjoy the talk and, if you feel like it, discuss it further on the community forum