Essentials of Compilation
Sold out
Original price
$50.00
-
Original price
$50.00
Original price
$50.00
$50.00
-
$50.00
Current price
$50.00
Description
A hands-on approach to understanding and building compilers using the programming language Python.
Compilers are notoriously 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. Jeremy Siek guides the reader in constructing their own compiler in the powerful object-oriented programming language Python, adding complex language features as the book progresses. Essentials of Compilation 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.
1 Preliminaries 1
2 Integers and Variables 13
3 Parsing 29
4 Register Allocation 45
5 Booleans and Conditionals 65
6 Loops and Dataflow Analysis 91
7 Tuples and Garbage Collection 99
8 Functions 125
9 Lexically Scooped Functions 143
10 Dynamic Typing 161
11 Gradual Typing 177
12 Generics 195
A Appendix 207
References 209
Index 217Jeremy G. Siek is Professor of Computer Science at Indiana University and author of Essentials of Compilation: An Incremental Approach in Racket and The Boost Graph Library. He invented gradual typing, a type system that integrates both dynamic and static typing in the same programming language.
Compilers are notoriously 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. Jeremy Siek guides the reader in constructing their own compiler in the powerful object-oriented programming language Python, adding complex language features as the book progresses. Essentials of Compilation 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
- Classroom-tested, hands-on approach suitable for students and professionals
- Extensive ancillary resources include source code and solutions
1 Preliminaries 1
2 Integers and Variables 13
3 Parsing 29
4 Register Allocation 45
5 Booleans and Conditionals 65
6 Loops and Dataflow Analysis 91
7 Tuples and Garbage Collection 99
8 Functions 125
9 Lexically Scooped Functions 143
10 Dynamic Typing 161
11 Gradual Typing 177
12 Generics 195
A Appendix 207
References 209
Index 217Jeremy G. Siek is Professor of Computer Science at Indiana University and author of Essentials of Compilation: An Incremental Approach in Racket and The Boost Graph Library. He invented gradual typing, a type system that integrates both dynamic and static typing in the same programming language.
PUBLISHER:
MIT Press
ISBN-10:
0262048248
ISBN-13:
9780262048248
BINDING:
Hardback
PUBLICATION YEAR:
2023
NUMBER OF PAGES:
232
BOOK DIMENSIONS:
7.2500(W) x 10.3100(H) x 0.7400(D)
AUDIENCE TYPE:
General/Adult
LANGUAGE:
English