Document Type

Technical Report

Publication Date



Object-oriented languages (Computer program languages), Object-oriented methods (Computer science)--Software, Programming languages (Electronic computers)--Software


Grace is a gradually typed, object-oriented language for use in education; consonant with that use, we have tried to keep Grace as simple and straightforward as possible. Grace needs a module system for several reasons: to teach students about modular program design, to organise large programs, especially its self-hosted implementation, to provide access to resources defined in other languages, and to support different “dialects”—language subsets, or domain specific languages, for particular parts of the curriculum. Grace already has several organising constructs; this paper describes how Grace uses two of them, objects and lexical scope, to provide modules and dialects.


School of Engineering and Computer Science, Victoria University of Wellington, Tech. Rep. ECSTR13-02 (2013).

Persistent Identifier