Honors theses guided by Professor Kim Bruce

This page contains titles and abstracts of some of the Pomona and Williams College Computer Science student honors theses guided by Professor Kim Bruce. These theses can be downloaded on the web. Many of the theses also resulted in papers co-authored by the students and Professor Bruce.

Most student theses that Kim Bruce has guided over the last five years have been concerned with the design of statically-typed type-safe object-oriented languages. As part of this design effort careful attention has been paid to the design of the type system and to the formal semantics of the languages.

The theses by van Gent, Schuett, Petersen, and Browne all build on each other to design more sophisticated languages. Van Gent's thesis added imperative features to the language TOOPLE to get the language TOIL. Schuett add support for polymorphism to TOIL to obtain PolyTOIL. Petersen's thesis involved a simplification to PolyTOIL by replacing subtyping by matching, and also added a sophisticated module system. Browne added support for concurrency to LOOM, obtaining Concurrent LOOM. Each of these students implemented their languages by constructing interpreters.

Vanderwaart's thesis was a bit different from the earlier ones in that he focused on developing a typed intermediate language for LOOM. He wrote a compiler from LOOM to the typed intermediate language. We hope eventually to hook this up to a compiler backend like the FLINT backend of Standard ML of NJ.

Seligman's thesis examined the object-oriented core of C++. As well as discovering a few ambiguities in the language, he was also able to document just how complex the semantics of C++ really are.

Burstein's thesis involved integrating the innovative features of LOOM into the existing language, Java. His language is based on the proposal described in the paper Increasing Java's expressiveness with ThisType and match-bounded polymorphism by Kim Bruce. Burstein's Rupiah compiler added both parametric polymorphism and a "ThisType" construct to Java, with an implementation based on Java's reflection facilities. Foster rewrote the Rupiah compiler based on Sun's Java 1.4 compiler, adding a ThisClass construct as well as type casts and "instanceof", modifying and improving many aspects of the previous implementation.

Gonzalez's thesis aimed at improving the efficiency of the Java virtual machine in executing code compiled from LOOJ (and incidentally from GJ). The idea is that information about type parameters, ThisType, and ThisClass were kept in annotations in the .class file and used by a modified verifier to check the code as it is loaded into the virtual machine. Because the class files have access to this extra information, the superfluous type casts generated by the compiler can be omitted, with the result that the virtual machine can execute faster JVML code, resulting in faster overall execution time.

Student theses are listed in (reverse) order of completion date.


Back to Kim Bruce's home page