
ISBN/ISSN: 1-85032-298-8, 512 pages, 7.5 x 9.5 inches, paperbound
Price: US $36.95
Price: UK £26.95
Price: Canada $51.95
The book is, unfortunately, now out of print. International
Thomson decided to drop their Computer Press division, and this title was
one of those to be dropped after copies ran out. The copyright was returned to
the author, who has now created an online version at
http://www.scifac.ru.ac.za/compilers.
This site also contains compressed downloadable files of the online edition,
and files from which a paper copy may be produced on an HP Laserjet compatible
printer.
Written to support a practically oriented course in programming language
translation, this book combines theory, practical applications and the
use of compiler writing tools to give students a solid introduction to
the subject.
Key features of the book:
-
Highly accessible in approach, it provides a sufficient level of theory
without overwhelming the reader with too much mathematical detail
-
Extensive case studies of translators are interspersed throughout, allowing
the reader to view the theory in practice
-
C++ is used for the illustrations in the text, whilst source code for all
of them is provided on the accompanying disk in C++, Modula-2 and Pascal.
-
Stressing the importance of compiler tools in modern practice, the book
describes the use of a powerful tool (also provided on the disk) for generating
recursive descent compilers in C++, Modula-2 or Pascal. The compiler generator,
Coco/R, is used as this is simple, fast and clean
and very understandable for this level of student.
-
Recognising both the importance and complexity of object-oriented programming
at this level of instruction, the author has made a careful choice of limited
OOP features
-
A comprehensive set of exercises allows the reader to develop the material
further at many different levels
Table of Contents:
1 Introduction 2 Translator Classification and Structure 3 Compiler Construction
and Bootstrapping 4 Machine Emulation 5 Language Specification 6 Simple
Assemblers 7 Advanced Assembler Features 8 Grammars and their Classification
9 Deterministic Top Down Parsing 10 Parser and Scanner Construction 11
Syntax Directed Translation 12 Using Coco/R -Overview 13 Using Coco/R -
Case Studies 14 A Simple Compiler - The Front End 15 A Simple Compiler
- The Back End 16 Simple Block Structure 17 Parameters and Functions 18
Concurrent Programming.
(A more detailed list of the contents may be obtained here).
Preface
The preface to the book, giving a fuller overview and rationale, may be
read here.
Errata and Feedback
The author maintains a list of errata detected
since the book was published.
If you have read this book, the author would like to have your opinions,
favourable or otherwise. He would also appreciate learning of other errata
that you may discover. Contact him at the address above, or by email.
Sources on the Web
The latest versions of the files on the diskette were previously available for anonymous
FTP from ftp://cs.ru.ac.za/pub/languages/textbook.
That server is no longer operational; the files may now be obtained from
the online web site at
http://www.scifac.ru.ac.za/compilers/.
These incorporate corrections that have emerged since the book was published.
The files are supplied as self-extracting MS-DOS executables within a "zip" wrapper. They may
also be decompressed using LHA on other systems.
The files associated directly with the textbook are:
cocorc.exe 71 Kb Minimal Coco/R for C (Updated 2002)
cocorm.exe 76 Kb Minimal Coco/R for Modula-2 (Updated 2002)
cocorp.exe 65 Kb Minimal Coco/R for Pascal (Updated 2002)
common.exe 93 Kb Files common to all languages
csources.exe 350 Kb C++ specific sources
msources.exe 345 Kb Modula-2 specific sources
psources.exe 312 Kb Pascal specific sources (Updated October 1997)
fileio.exe 47 Kb Modula-2 FileIO module
lha213.exe 43 Kb LHArc decompressor
readme.1st 11 Kb Installation and setup instructions
Other supplementary material and solutions to some problems are available on
request to the author.