Princeton University
|
Computer Science 320
|
|
Understand the design and construction of compilers. Concepts include syntactical analysis, semantics, code generation, optimization, and run-time systems. Problems in processing imperative languages, such as C, as well as functional languages such as ML, will be examined. A complete compiler for a small language will be implemented in ML.
Prerequisites: 217 and 226.
Install SML/NJ on your
computer. The most recent version is SML/NJ version 110.79
although any version younger than (and including) 110.67
should be fine. Follow the instructions on this page. You may find it useful to run SML under emacs. This will let
you take advantage of rudimentary support for automatic
indentation, syntax-highlighting, and special keybindings.
Details.
Software
Do not, under any circumstances, copy another person's program, and don't make your code available to others. Writing code for use by another or using somone else's code in any form violates the University's academic regulations.
You can get help with the assignments by sending electronic mail to cos320 or directly to the TA, by posting questions to Piazza, by coming to the office hours, or by making an appointment with the instructors. Ask for help when you need it!
The late policy is to encourage submissions that are on-time. Any project can be late for up to 2 days without penalty. Up to 6 days total may be used for the assignments HW 1 to HW6, so use your late days wisely. After 2 days, zero credit is given for the assignment. The lateness policy for the assignments 7 to 9 will be announced at a later time.
There will be no extensions due to scheduling conflicts, computer downtime, or other such factors, except under truly extraordinary circumstances. Extensions will be granted only for university-sanctioned excuses such as illness, and then only with the proper documentation. You are responsible for planning ahead and managing your time so that you can complete the assignments on time. You must either finish on time or accept the consequences of doing otherwise.
Penalties are waived only for unforeseen circumstances, like illness, and then only with an appropriate written excuse.