Essentials of Compilation: An Incremental Approach in Racket

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

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. • 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

Author(s): Jeremy G. Siek
Edition: 1
Publisher: MIT Press
Year: 2023

Language: English
Pages: 240
City: Cambridge, MA
Tags: Lisp; Grammar; Recursion; Abstract Syntax Trees; Computer Science; Compilers; Type Inference; Garbage Collection; Racket; Type Systems; Pattern Matching; Gradual Typing; Dynamic Typing