
Essentials of Compilation
An Incremental Approach in Racket
Jeremy G. Siek(Author)
MIT Press
Published on 21. February 2023
Book
Hardback
240 pages
978-0-262-04776-0 (ISBN)
Description
A hands-on approach to understanding and building compilers.
Compilers are notoriously some of the most difficult programs to teach and understand. Most books about compilers dedicate one chapter to each progressive stage, a structure that hides how language features motivate design choices. By contrast, this innovative textbook provides an incremental approach that allows students to write every single line of code themselves. Essentials of Compilation guides the reader in constructing their own compiler for a small but powerful programming language, adding complex language features as the book progresses. Jeremy Siek explains the essential concepts, algorithms, and data structures that underlie modern compilers and lays the groundwork for future study of advanced topics. Already in wide use by students and professionals alike, this rigorous but accessible book invites readers to learn by doing.
Compilers are notoriously some of the most difficult programs to teach and understand. Most books about compilers dedicate one chapter to each progressive stage, a structure that hides how language features motivate design choices. By contrast, this innovative textbook provides an incremental approach that allows students to write every single line of code themselves. Essentials of Compilation guides the reader in constructing their own compiler for a small but powerful programming language, adding complex language features as the book progresses. Jeremy Siek explains the essential concepts, algorithms, and data structures that underlie modern compilers and lays the groundwork for future study of advanced topics. Already in wide use by students and professionals alike, this rigorous but accessible book invites readers to learn by doing.
- Deconstructs the challenge of compiler construction into bite-sized pieces
- Enhances learning by connecting language features to compiler design choices
- Develops understanding of how programs are mapped onto computer hardware
- Learn-by-doing approach suitable for students and professionals
- Proven in the classroom
- Extensive ancillary resources include source code and solutions
More details
Language
English
Place of publication
Cambridge (Massachusetts)
United States
Publishing group
MIT Press Ltd
Illustrations
144 black and white illustrations
Dimensions
Height: 184 mm
Width: 262 mm
Thickness: 21 mm
Weight
662 gr
ISBN-13
978-0-262-04776-0 (9780262047760)
Copyright in bibliographic data and cover images is held by Nielsen Book Services Limited or by the publishers or by their respective licensors: all rights reserved.
Schweitzer Classification
Other editions
Additional editions

E-Book
02/2023
MIT Press
€48.99
Available for download
Person
Jeremy G. Siek
Content
Preface xi
1 Preliminaries 1
2 Integers and Variables 13
3 Register Allocation 35
4 Booleans and Conditionals 57
5 Loops and Dataflow Analysis 83
6 Tuples and Garbage Collection 97
7 Functions 127
8 Lexically Scoped Functions 145
9 Dynamic Typing 161
10 Gradual Typing 179
11 Generics 199
A Appendix 211
References 215
Index 223
1 Preliminaries 1
2 Integers and Variables 13
3 Register Allocation 35
4 Booleans and Conditionals 57
5 Loops and Dataflow Analysis 83
6 Tuples and Garbage Collection 97
7 Functions 127
8 Lexically Scoped Functions 145
9 Dynamic Typing 161
10 Gradual Typing 179
11 Generics 199
A Appendix 211
References 215
Index 223