Thesis: Graceful Language Extensions and Interfaces

My thesis, Graceful Language Extensions and Interfaces, was completed at Victoria University of Wellington in 2014, supervised by James Noble and David Pearce.

It is available in the university library, or for download here or from the university's research archive.


Grace is a programming language under development aimed at education. Grace is object-oriented, imperative, and block-structured, and intended for use in first- and second-year object-oriented programming courses. We present a number of language features we have designed for Grace and implemented in our self-hosted compiler. We describe the design of a pattern-matching system with object-oriented structure and minimal extension to the language. We give a design for an object-based module system, which we use to build dialects, a means of extending and restricting the language available to the programmer, and of implementing domain-specific languages. We show a visual programming interface that melds visual editing (à la Scratch) with textual editing, and that uses our dialect system, and we give the results of a user experiment we performed to evaluate the usability of our interface.

Auxiliary data

There is accompanying additional auxiliary data for the benefit of future researchers:


Several of my publications correspond to chapters of the thesis. These are:

Michael Homer — 2015