Programing and Specification Languages

Several projects focus on the design, development, semantics, and use of programming and specification languages.

We focus on languages that are aesthetically reasonable and are either of general interest and popular (e.g., Java, C, and JML) or are theoretically and practically useful but not (yet) popular (e.g., Eiffel, OCaml, Haskell, and BON). We will not work with C++, C#, or UML.

In general, students pursuing these projects learn a great deal about compilers, program specification, and the deep connections between the theory covered in a Computer Science degree and practical tool development and use.