CS 214: Programming Languages
Spring 2009

Home|Syllabus|Schedule

Exam #2

Two documents. Due Monday, May 4 at 4:30pm.

Hobbes Interpreter Report

An important part of programming is being able to write about your programming. Writing is also important for the learning process. Plus, I want you to learn another programming language. Towards these ends, I want you to write a report in LaTeX about the Hobbes interpreter that you've been working on in the labs so far.

The goal of the paper is to explain what your interpreter does and what concepts and technologies you've used.

Your audience is an upperclass student or even a professor, so do not get bogged down in detailed definitions or descriptions.

It is not critical if you are not caught up with all of the interpreter iterations yet (although you should at least be able to compute simple additions and multiplications). Write about the interpreter as it stands now.

The report should contain an abstract (a one-paragraph summary of the paper—appears first but written last), an introductory section (also written last), a concluding section (written last), and one to three interesting sections of substance.

You do need a bibliography which you cite in the paper. The different libraries that you use should be in that bibliography. You may also want to use some Wikipedia articles for references for "multiple dispatch" and "visitor pattern" and "mock objects" and other concepts that you've used.

The report needs to be two pages long, and you need to follow the format laid down by the ACM for their conferences. If it's not two pages long, you haven't gone into enough detail. If it's longer than two pages, it must be shorter.

LaTeX (pronounced "lah-tech", not "lay-tecs") is more than just a way to typeset a document. It is, in fact, a programming language. The ACM provides two LaTeX templates; you should use the alternative version. I have a paper I wrote for SIGCSE in /home/jdfrens/pub/CS214/sigcse2006.tex on the GLUW-lab machines as an example for you to use; this LaTeX document uses that alternate format. Drop the references to the SIGCSE conference in your report as well as the "Categories and Subject Descriptors".

To process my paper, these are some useful commands I would use:

Of course, you've renamed the file, so your commands will look a little different.

Some LaTeX quirks to watch out for:

Consult the LaTeX references to make sure you deal with these quirks appropriately. (Yes, points will be taken off if you don't!)

Hobbes Interpreter User Manual

Write a user manual for your Hobbes interpreter. Give the user enough information so that she can write Hobbes programs and interpret them with your scripts/hobbes program (which she would execute as just hobbes).

Write the user manual in LaTeX, as a plain document (without using an ACM template).