On Teaching Type Systems as Macros (bibtex)
by Youyou Cong, Naoya Furudono and Hidehiko Masuhara
Abstract:
Type systems are one of the fundamental things that everyone in the programming languages community must study. In our research group, we run a semester-long type systems seminar every two years, covering essential chapters of the traditional TaPL book. This year, however, we are attempting a different approach, namely teaching type systems through programming in the Turnstile language of Chang et al. Turnstile is a Racket DSL for creating typed programming languages, built under the slogan "type systems as macros". More specifically, it allows the user to define typing rules in the familiar, derivation-like syntax, and to reuse Racket's infrastructure for type checking and evaluation. We report our experience in teaching type systems as macros to an undergraduate student who joined our research group this spring (the second author). In particular, we show how the student used Turnstile to build simple type-and- effect systems, and what difficulties the student had in the course of implementation.
Reference:
On Teaching Type Systems as Macros (Youyou Cong, Naoya Furudono and Hidehiko Masuhara), Lighting Talk at Scheme and Functional Programming Workshop (Scheme 2020), 2020.
Bibtex Entry:
@misc{cong2020scheme,
  author = {Youyou Cong and Naoya Furudono and Hidehiko Masuhara},
  title = {On Teaching Type Systems as Macros},
  howpublished = {Lighting Talk at Scheme and Functional Programming Workshop (Scheme 2020)},
  month = aug,
  year = 2020,
  date = {2020-08-28},
  url = {https://icfp20.sigplan.org/home/scheme-2020},
  abstract = {Type systems are one of the fundamental things that everyone in the programming languages community must study. In our research group, we run a semester-long type systems seminar every two years, covering essential chapters of the traditional TaPL book. This year, however, we are attempting a different approach, namely teaching type systems through programming in the Turnstile language of Chang et al. Turnstile is a Racket DSL for creating typed programming languages, built under the slogan ``type systems as macros''. More specifically, it allows the user to define typing rules in the familiar, derivation-like syntax, and to reuse Racket's infrastructure for type checking and evaluation.

We report our experience in teaching type systems as macros to an undergraduate student who joined our research group this spring (the second author). In particular, we show how the student used Turnstile to build simple type-and- effect systems, and what difficulties the student had in the course of implementation.}
}
Powered by bibtexbrowser