cmsc430 / cmsc430.github.io

CMSC 430 Design and Implementation of Programming Languages
https://cmsc430.github.io/
45 stars 33 forks source link

Embrace `#lang` #137

Open dvanhorn opened 1 year ago

dvanhorn commented 1 year ago

A few perennial issues in the class:

To improve this, I propose, we ship #lang language for each of the languages plus all of the assignment languages. The implementation will be by expansion to Racket, so you'll get usual IDE tools, plus static checking for conformance to the language. This makes it definitive to say "run Check Syntax" and if it's OK, your compiler better be able to compile it. It also gives students a reference implementation for the interpreter without leaking any details since the implementation via expansion doesn't shed light on how to write the interpreter/compiler. Being able to run programs in DrRacket may help reinforce the ideas that you can write programs in these languages.