1.4. Implementation

Considerations of software engineering have been allowed to influence the design of Coral 66, principally to ensure the possibility of rapid compilation, loading and execution. Conceptually, Coral 66 compilation is a one-pass process. The insistence that identifiers are fully declared or specified before use simplifies the compiler by ensuring all relevant information is available when required. The syntax of the language is transformable into one-track predictive form, which enables fast syntax analyzers with no backtracking to be employed. Features which require elaborate hardware in the object machine for efficient program execution, for example dynamic storage allocation, are not included in the language. Unless run in a special diagnostic mode, a Coral 66 compiler is not expected to generate run-time checks on subscript bounds. No run-time checking of procedure entries is necessary. The arrangements for separate compilation of program segments are designed to minimize load-time overheads, but the specification of the interface between a Coral 66 compiler and the loader is outside the scope of the present document.