CSE 230: Principles of Programming Languages
Project Suggestions

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 this course.

  1. 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 stack.
     
  2. 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.
     
  3. 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.
     
  4. 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.
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.


To CSE 230 homepage
Maintained by Joseph Goguen
© 2000, 2001 Joseph Goguen
Last modified: Sat Mar 17 14:34:15 PST 2001