Language definition-based compiler development
Abstract An important reason for developing a formal definition of a programming language is to provide guidance for implementors. At the very least, a formal definition establishes a standard of implementation correctness. Here we examine one avenue of compiler implementation based on a constructive functional language definition organized into a set of modular theories and syntax-directed rules. A modular implementation, whose structure follows that of the formal definition, is developed by a combination of hand coding and semiformal transformations that bring the definition down to the level of a program in a Pascal-like language. Program verification techniques are then used to confirm the correctness of the implementation steps.