AN APPROACH TO COMPUTER LANGUAGE DESIGN
Abstract
The problem of an extendable compiler is approached by attempting to simplify the methods of generating a compiler and by designing a basic language upon which to build. A context-free grammar is required as the initial input to a syntax preprocessor which produces syntactic analysis tables for the extendable compiler. A formal mathematical description of a class of analysis algorithms, two new syntax preprocessor algorithms, and theorems concerning the behavior of the algorithms and the nature of the acceptable grammars are given. The EULER development of Wirth and Weber (EULER: A generalization of Algol and its formal definition. Technical report, CS20) is carried to a more concise and powerful form. We advocate languages that are minimal and involuted. A minimal language combines into a single construct any two conceptually similar but notationally different constructs. An involuted language avoids constructs that are applicable only in local context. Control over the flow of execution within a program is obtained that is sufficiently complete so that the traditional label and go-to statement can be discarded as irrelevant. An extendable compiler is presented that is written in the kernel language itself. Conclusions are that the precedence grammar techniques are efficient and useful. Further improvement could make them substantially superior to other methods of compiler generation.
Document Details
- Document Type
- Technical Report
- Publication Date
- Aug 31, 1966
- Accession Number
- AD0639166
Entities
People
- W. M. Mckeeman
Organizations
- Stanford University