Grace: the Absence of (Inessential) Difficulty

Abstract

We are engaged in the design of a small, simple programming language for teaching novices object-oriented programming. This turns out to be far from a small, simple task. We focus on three of the problems that we encountered, and how we believe we have solved them. The problems are (1) gracefully combining object initialization, inheritance, and immutable objects, (2) reconciling apparently irreconcilable views on type-checking, and (3) providing a family of languages, each suitable for students at different levels of mastery, while ensuring conceptual integrity of their designs. In each case our solutions are based on existing research; our contribution is, by design, consolidation rather than innovation.

Authors

Andrew P. Black, Kim B. Bruce, Michael Homer, James Noble

Published in

Symposium on New Ideas in Programming and Reflections on Software (Onward!), 2012

The final copy of this publication is available from the publisher.

Resources

In 2024, this work received the Most Notable Paper Award relating to Onward! 12 years earlier.

Citation
In this Onward! 2012 paper, the authors distilled a tremendous effort to accommodate the needs of programming pedagogy in a new language design. The paper is a model of clarity, deftly justifying its choices while also situating Grace within the rich history of programming languages past and present. It has supported and inspired considerable follow-on work, not only on pedagogy but also in programming language research topics such as gradual typing and the semantics of object-orientation.
PDF
mwh.nz/pdf/onward2012
this page
mwh.nz/pubs/onward2012
Michael Homer — 2024 e6b1d5c8