Document Type

Working Paper

Publication Date



Object-oriented programming (Computer science), Object-oriented programming languages -- Design and construction, Computer software


This is a specification of the Grace Programming Language. This specification is notably incomplete and everything is subject to change. In particular, this version does not address the library, nested static type system, module system, metadata, immutable data and pure methods, and other areas. For discussion and rationale, see

It is designed for use by university students learning programming in CS1 and CS2 classes that are based on object-oriented programming, faculty and teaching assistants developing materials for 1st and 2nd year programming classes, programming researchers needing an object-oriented programming language as a research vehicle, and programming designers in search of a good example of contemporary OO language design.


Thanks to Josh Bloch, Cay Horstmann, Micahel Kølling, Doug Lea, the participants at the Grace Design Workshops and the IFIP WG2.16 Programming Language Design for discussions about the language design.

Persistent Identifier