RacketScript
Vishesh Yaddav · 2016
We present RacketScript, a Racket-to-JavaScript compiler that incorporates features and data structures from both Racket and JavaScript, enabling RacketScript programs to interoperate with libraries from either language. In addition, RacketScript aims to generate human-readable code with performance and memory usage comparable to handwritten JavaScript. To achieve such goals, our compiler must approximate the semantics of some features such as tail-call optimization and continuation marks. This dissertation describes these and other key design decisions. To evaluate the effectiveness of our design, we used RacketScript to implement an event-driven game library, several popular games, and a sandbox web app (both client and server) that allows other programmers to experiment with RacketScript.