The Semantics of Name Resolution in Grace

Vlad Vergu, Michiel Haisma, Eelco Visser. The Semantics of Name Resolution in Grace. Technical Report TUD-SERG-2017-011, Software Engineering Research Group, Delft University of Technology, 2017.


Grace is a dynamic object oriented programming language designed to aid programming education. We present a formal model of and give an operational semantics for its object model and name resolution algorithm. Our main contributions are a systematic model of Grace's name resolution using scope graphs, relating linguistic features to other languages, and an operationalization of this model in the form of an operational semantics which is readable and executable. The semantics are extensively tested against a reference Grace implementation.