Semantic charts: A diagrammatic approach to semantic processing

This paper describes a technique for implementing the part of a compiler that processes the semantics of a programming language. It presents a concise, easy to understand notation for describing this semantic processing. The notation utilizes semantic charts which are similar to the separable transition diagrams [Conway63, Barnard75] that are used to define the syntax of programming languages. The charts describe semantic processing in terms of a set of operations that manipulate a small number of special-purpose data structures. They form a variable-free programming language, which accesses data via a set of operations organized into mechanisms to manage the associated data structure. These mechanisms can be modelled (and thus formalized) using abstract data types.