CS442: Assignment 1
The purpose of this assignment is to apply the abstract
principles developed in the lectures to a real-world
programming language.
You may choose any language for which a commercial/open source
compiler exists (typical choices are Pascal, Algol 6x, Modula-x,
Java, C, C#, etc.; esoteric choices, e.g., PostScript or TeX are
not recommended unless you know what you are doing).
The deliverable of this assignment is a report that discusses the
following issues:
- what forms the core of your language? Abstract syntax?
- what are the appropriate type attributes and typing rules?
- what does it do (denotational/operational semantics)?
- what abstractions does the language allow?
- what sorts of parameters does it allow?
- does the language allow local declarations? how?
The presentation should follow the notation used in classes. You
should focus on the inherent features of the chosen
language and skip things realized by libraries (e.g., input/output
routines, or, in the case of C, the "string" type), etc.
Assessment:
The completed assignment will be assessed with
respect to the following criteria:
- Completeness: how much of the chosen language does the
report capture? In general, more is better, but appropriate
abstraction from too much detail and/or focus on certain aspects
of the language (especially in cases of large languages
such as Algol 68) may be used judiciously. In these cases,
please explain briefly what simplification(s) you assumed and
why.
- Technical merit: are the definitions/rules/equations
correct, do they make sense, and do they fit together? For
specifying semantics you may use recurrent definitions that can
be appropriately unfolded as those we used in class (relying on
the promise that we learn how to solve the recurrences later).
- Clarity and Organization: is the presentation clear (i.e.,
it defines terms it uses, etc.) and not redundant (i.e., doesn't
repeat the same thing in many places)? Elegant solutions will
receive higher mark.
The report should be about 15 pages (25 pages max) typeset in a
standard 10pt font and delivered as hardcopy and in PDF.