CSE 230: Principles of Programming Languages
You may substitute a final project for the final examination, but you must
obtain permission from me to do some specific project, based on a fairly
detailed written project proposal. You may work in a team of up to three
people on the same project. Some suggested topics are given below, but you
may propose others; projects that are mainly programming are not suitable for
Your written report should conform to the usual standards of good
academic computer science publications, and in particular should include clear
explanations for all programming examples, and should have a bibliography with
precise citations for all works used. In addition, there should be
introduction and conclusions sections.
- Do a semantics for a fragment of ML that includes integers, lists and
first order recursive functions, using OBJ. Use it to prove the correctness
of simple ML programs like reverse. You will have to model the run-time
- Write new material to be inserted into Stansifer's book on the Java
language; you only need to write inserts for places where special features of
Java are germaine and/or interesting, not at every possible place. It would
be useful to replace examples that use Ada by examples that use Java wherever
possible, because Ada is now considered to be far less important than Java.
- Write new material to be inserted into Stansifer's book on C and/or C++;
you only need to write inserts for places where particular features of these
language are germaine and/or interesting, not at every possible place. It
would be useful to replace examples that use Ada where possible, because Ada
is now less important than was once thought.
- Give a semantics for a language like that in the Algebraic
Semantics textbook, but with pointers, and with both environments and
stores in its semantics.
To CSE 230 homepage
Maintained by Joseph Goguen
© 2000, 2001 Joseph Goguen
Last modified: Sat Mar 17 14:34:15 PST 2001