Implementation
What is This Thread’s Purpose?
The Implementation thread will have you implement the core of multiple languages and tools. You will practice the notion of SImPl introduced in class.
Time
These can take several hours, as is common with programming assignments. Come get help if you’ve spent more than five hours. The calendar duration of an assignment is proportional to the expected implementation time.
Grading Standard
Your implementation needs to be correct, robust (well-tested), and clear (well-structured, clean code). Yes, we do care about “software engineering” issues, not only whether the code “works”.The correctness expectations for languages are exceptionally high, especially when compared to most other software artifacts. How often do you run into errors in your language implementation? Essentially, the onus is on you to convince us that your program is correct, not for us to convince you it’s not. The “software engineering” bits (clean code, strong tests, etc.) are the best way to make that case.
We expect you to follow Racket’s coding standards in your submission.
Software
You will use the Plait language for some of the assignments, and Racket’s macro system for the others.
Both will be introduced during the course.
Install Plait by going into DrRacket, File | Package Manager… | Do What I Mean, and type plait (in all-lower-case) into the box. DrRacket will find Plait in the catalog and install it automatically.
Watch the tutorial videos by Matthew Flatt.
The documentation is online and, after the language has been installed, in your local installation. Go to Help | Racket Documentation for the local installation, and type plait in the search box.
Tasks
Follow the instructions in the assignments below.