CMSC 330, Summer 2012

Organization of Programming Languages

Project 4

Parts 1,2 due Monday, July 2, 2012
Part 3 due Wednesday, July 11, 2012

Public tests have been posted:

Some tests are in subdirectories because they could be called with multiple sets of top-level parameters. Check the filenames of the output files to see which parameters to pass to "rube".


This project will give you more experience writing in a functional language, namely OCaml. In particular, you will implement an interpreter for a simple fictional language "Rube," as well as various helper functions.

Since the project description requires some operational semantics formulas that are difficult to express in HTML, the project writeup is available as a PDF:

What to Submit

You should submit one file, If you use submit.jar, make sure you run make clean before you submit!

You can find a p4 directory here that contains a .submit file, a starter with function stubs, and other support files:

Academic Integrity

The Campus Senate has adopted a policy asking students to include the following statement on each assignment in every course: "I pledge on my honor that I have not given or received any unauthorized assistance on this assignment." Consequently your program is requested to contain this pledge in a comment near the top.

Please carefully read the academic honesty section of the course syllabus. Any evidence of impermissible cooperation on projects, use of disallowed materials or resources, or unauthorized use of computer accounts, will be submitted to the Student Honor Council, which could result in an XF for the course, or suspension or expulsion from the University. Be sure you understand what you are and what you are not permitted to do in regards to academic integrity when it comes to project assignments. These policies apply to all students, and the Student Honor Council does not consider lack of knowledge of the policies to be a defense for violating them. Full information is found in the course syllabus---please review it at this time.

Valid HTML 4.01!