CSE 230: Principles of Programming Languages
Project Suggestions

You must give me a detailed written project proposal by the end of the fifth week. You may work in a team of up to three people on the same project, but permission is required. 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 an applet for Post systems that can be used by students in CSE 130 to learn how they work; it should be possible to define any Post system and then do proofs in it; you should use graphics in a natural way, not some command line syntax.
  3. Write new material to be inserted into Sethi'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.
  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.
  5. Develop some interesting examples of higher order parameterized programming, along the lines of (but different from) the induction examples linked on the BOBJ system homepage.
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. References should be at the end, in a standard academic format, with title, author, date, publisher, etc.; do not just give a URL! You must not recycle a paper written for some other class, or (of course) something found on the internet. You must make good use of concepts introduced in this class.

To CSE 230 homepage
Maintained by Joseph Goguen
© 2000, 2001, 2002, 2003 Joseph Goguen
Last modified: Wed Feb 5 19:10:52 PST 2003