ack/doc/pascal/ab+intro.doc
1991-11-01 09:43:36 +00:00

51 lines
2.1 KiB
Plaintext

.TL
The ACK Pascal Compiler
.AU
Aad Geudeke
Frans Hofmeester
.AI
Dept. of Mathematics and Computer Science
Vrije Universiteit
Amsterdam, The Netherlands
.AB
This document describes the implementation of a Pascal to EM compiler. The
compiler is written in C. The lexical analysis is done using a hand-written
lexical analyzer. Semantic analysis makes use of the extended LL(1) parser
generator LLgen. Several EM utility modules are used in the compiler.
.AE
.sp 2
.NH
Introduction
.PP
.nh
The Pascal front end of the Amsterdam Compiler Kit (ACK) complies with the
requirements of the international standard published by the International
Organization for Standardization (ISO) [ISO]. An informal description, which
unfortunately is not conforming to the standard, of the programming language
Pascal is given in [JEN].
.PP
The main reason for rewriting the Pascal compiler was that the old Pascal
compiler was written in Pascal itself, and a disadvantage of it was its
lack of flexibility. The compiler did not meet the needs of the current
ACK-framework, which makes use of modern parsing techniques and utility
modules. In this framework it is, for example, possible to use a fast back
end. Such a back end translates directly to object code [ACK]. Our compiler is
written in C and it is designed similar to the current C and Modula-2 compiler
of ACK.
.PP
Chapter 2 describes the basic structure of the compiler. Chapter 3 discusses
the code generation of the main Pascal constructs. Chapter 4 covers one of
the major components of Pascal, viz. the conformant array. In Chapter 5 the
various compiler options that can be used are enumerated. The extensions
to the standard and the deviations from the standard are listed in Chapter
6 and 7. Chapter 8 presents some ideas to improve the standard. Chapter 9
gives a short overview of testing the compiler. The major differences
between the old and new compiler can be found in Chapter 10. Suggestions
to improve the compiler are described in Chapter 11. The appendices
contain the grammar of Pascal and the changes made to the ACK Pascal run time
library. A translation of a Pascal program to EM code as example is presented.
.bp