CS 421: Programming Languages and Compilers
Machine Problem 3 (MP3)
Update (02/04/11 2PM): Problem 3 (floats) was clarified. Please download the new handout (v1.1) and tar-ball (v1.2). Previously, the rule treated "e+123" as a float. With the new specification, it is no longer a float.

Update (02/02/11 5PM): There is a minor update to the second test case for Problem 1. Previously, the test case could cause the following error, because "const" is not a keyword:

[0 / 1] get_all_tokens "class const ()< * =" (student solution timed out / exception thrown)

MP3 will give you practice with ocamllex. Keep in mind that your solution must define every required function, otherwise the grading program will not compile and you will receive no points for the entire homework set. For example, if you decide not to implement the function splat (for whatever reason), you need to have it defined as:

let splat x = raise (Failure(""))

IMPORTANT: Make sure that you read the README file in the grader bundle . This file contains important information.

Also, make sure you read the "Guide for Doing MPs".

Files
mp3.pdf (v1.1)
mp3grader.tar.gz (v1.2)
mp3common.mli
mp3lex-sol.mll