Yah I figure it would be like Python but better if you were allowed to use the language design libraries. However the course specifically forbids standard library components that are designed for implementing languages so that you have to write the parser and things yourself.
But you could use Racket if you wrote your own parser generator macro as part of the project's code?
And would you be allowed to use Racket's existing facilities for representing and implementing macros?
(You might want to use the macro stuff for your AST, IR, and transformations. Though you could still win with normal data types, but the macro stuff can help you win even more.)