Best Compiler Design Books

The best compiler books in the world, based on recommendations from world experts, sales data, and millions of reader ratings.

1. 2021-2025 Monthly Planner 5 Years-Dream it, Believe it, Achieve it: 5 Year Monthly Planner 2021-2025 | 60 Months Calendar | Agenda Logbook and … 2022,2023,2024,2025) – Marble Rose Gold

Author: by Half-Decade Planners
150 pages

View on Amazon

Compilers: Principles, Techniques and Tools, known to professors, students, and developers worldwide as the “Dragon Book,” is available in a new edition. Every chapter has been completely revised to reflect developments in software engineering, programming languages, and computer architecture that have occurred since 1986, when the last edition published.

The authors, recognizing that few readers will ever go on to construct a compiler, retain their focus on the broader set of problems faced in software design and software development.

3. Engineering: A Compiler

Author: by Keith Cooper

Morgan Kaufmann

View on Amazon

Orders ship the same or next business day. Expedited shipping within U.S. Will arrive in 3-5 days. Hassle free 14 day return policy. Contact Customer Service for questions. May include moderately worn cover, writing, markings or slight discoloration. SKU:9780120884780-4-0

4. Digital Design and Computer Architecture: ARM Edition

Author: by Sarah Harris
Morgan Kaufmann

View on Amazon

Digital Design and Computer Architecture: ARM Edition covers the fundamentals of digital logic design and reinforces logic concepts through the design of an ARM microprocessor. Combining an engaging and humorous writing style with an updated and hands-on approach to digital design, this book takes the reader from the fundamentals of digital logic to the actual design of an ARM processor.

By the end of this book, readers will be able to build their own microprocessor and will have a top-to-bottom understanding of how it works. Beginning with digital logic gates and progressing to the design of combinational and sequential circuits, this book uses these fundamental building blocks as the basis for designing an ARM processor.

System Verilog and VHDL are integrated throughout the text in examples illustrating the methods and techniques for CAD-based circuit design. The companion website includes a chapter on I/O systems with practical examples that show how to use the Raspberry Pi computer to communicate with peripheral devices such as LCDs, Bluetooth radios, and motors.

5. Programming Language Pragmatics

Author: by Michael Scott
Morgan Kaufmann
992 pages

View on Amazon

Programming Language Pragmatics, Fourth Edition, is the most comprehensive programming language textbook available today. It is distinguished and acclaimed for its integrated treatment of language design and implementation, with an emphasis on the fundamental tradeoffs that continue to drive software development.

The book provides readers with a solid foundation in the syntax, semantics, and pragmatics of the full range of programming languages, from traditional languages like C to the latest in functional, scripting, and object-oriented programming. This fourth edition has been heavily revised throughout, with expanded coverage of type systems and functional programming, a unified treatment of polymorphism, highlights of the newest language standards, and examples featuring the ARM and x86 64-bit architectures.

6. LLVM Techniques, Tips, and Best Practices Clang and Middle-End Libraries: Design powerful and reliable compilers using the latest libraries and tools from LLVM

Author: by Min-Yih Hsu
370 pages

View on Amazon

Learn how you can build the next big programming language, compiler, or source code analyzer using LLVM and ClangKey FeaturesExplore Clang, LLVM’s middle-end and backend, in a pragmatic wayDevelop your LLVM skillset and get to grips with a variety of common use casesEngage with real-world LLVM development through various coding examplesBook DescriptionEvery programmer or engineer, at some point in their career, works with compilers to optimize their applications.

Compilers convert a high-level programming language into low-level machine-executable code. LLVM provides the infrastructure, reusable libraries, and tools needed for developers to build their own compilers. With LLVM’s extensive set of tooling, you can effectively generate code for different backends as well as optimize them.

In this book, you’ll explore the LLVM compiler infrastructure and understand how to use it to solve different problems. You’ll start by looking at the structure and design philosophy of important components of LLVM and gradually move on to using Clang libraries to build tools that help you analyze high-level source code.

7. CMake Cookbook: Building, testing, and packaging modular software with modern CMake

Author: by Radovan Bast
606 pages

View on Amazon

Learn CMake through a series of task-based recipes that provide practical, simple, and ready-to-use CMake solutions for your codeKey FeaturesConfigure, build, and package software written in C, C++, and FortranProgress from simple to advanced tasks with examples tested on Linux, macOS, and WindowsManage code complexity and library dependencies with reusable CMake building blocksBook DescriptionCMake is a cross-platform, open-source tool for building software in a compiler-free method.

CMake Cookbook features a collection of recipes and building blocks with tips and techniques for working with CMake, CTest, CPack, and CDash. This book includes real-world examples in the form of recipes that cover different ways to configure, build, and test small- to large-scale code projects.

You will learn to use CMake’s command-line tools and master modern CMake practices for configuring, building, and testing binaries and libraries. With this book, you will be able to work with external libraries and structure your own projects in a modular and reusable way.

8. Low-Level Programming: C, Assembly, and Program Execution on IntelĀ® 64 Architecture

Author: by Igor Zhirkov

View on Amazon

Learn Intel 64 assembly language and architecture, become proficient in C, and understand how the programs are compiled and executed down to machine instructions, enabling you to write robust, high-performance code. Low-Level Programming explains Intel 64 architecture as the result of von Neumann architecture evolution.

The book teaches the latest version of the C language (C11) and assembly language from scratch. It covers the entire path from source code to program execution, including generation of ELF object files, and static and dynamic linking. Code examples and exercises are included along with the best code practices.

Optimization capabilities and limits of modern compilers are examined, enabling you to balance between program readability and performance. The use of various performance-gain techniques is demonstrated, such as SSE instructions and pre-fetching. Relevant Computer Science topics such as models of computation and formal grammars are addressed, and their practical value explained.

9. Linkers and Loaders (The Morgan Kaufmann Series in Software Engineering and Programming)

Author: by John R. Levine
Morgan Kaufmann
272 pages

View on Amazon

Whatever your programming language, whatever your platform, you probably tap into linker and loader functions all the time. But do you know how to use them to their greatest possible advantage? Only now, with the publication of Linkers & Loaders, is there an authoritative book devoted entirely to these deep-seated compile-time and run-time processes.

The book begins with a detailed and comparative account of linking and loading that illustrates the differences among various compilers and operating systems. On top of this foundation, the author presents clear practical advice to help you create faster, cleaner code.

You’ll learn to avoid the pitfalls associated with Windows DLLs, take advantage of the space-saving, performance-improving techniques supported by many modern linkers, make the best use of the UNIX ELF library scheme, and much more. If you’re serious about programming, you’ll devour this unique guide to one of the field’s least understood topics.

Linkers & Loaders is also an ideal supplementary text for compiler and operating systems courses.

10. GIT: The Ultimate Guide for Beginners: Learn Git Version Control

Author: by Jameson Garner
August 6, 2020

View on Amazon

Learn the key concepts and basic workflow for Git with this easy to follow, top rated, bootcamp-style book! Learn the basics of Git through detailed and easy to follow along screencasts. Start using Git today! This book is designed to cut academic theory to just the key concepts and focus on basics tasks in Git in order to be productive quickly.

Students can expect to learn the minimum needed to start using Git in less than an hour. Who this book is for:Anyone interested in using source control and specifically GitSoftware engineers, developers, and programmers new to Git

11. Learn LLVM 12: A beginner's guide to learning LLVM compiler tools and core libraries with C++

Author: by Kai Nacke
Packt Publishing
May 28, 2021

View on Amazon

Learn how to build and use all parts of real-world compilers, including the frontend, optimization pipeline, and a new backend by leveraging the power of LLVM core librariesKey FeaturesGet to grips with effectively using LLVM libraries step-by-step Understand LLVM compiler high-level design and apply the same principles to your own compiler Use compiler-based tools to improve the quality of code in C++ projectsBook DescriptionLLVM was built to bridge the gap between compiler textbooks and actual compiler development.

It provides a modular codebase and advanced tools which help developers to build compilers easily. This book provides a practical introduction to LLVM, gradually helping you navigate through complex scenarios with ease when it comes to building and working with compilers.

You’ll start by configuring, building, and installing LLVM libraries, tools, and external projects. Next, the book will introduce you to LLVM design and how it works in practice during each LLVM compiler stage: frontend, optimizer, and backend. Using a subset of a real programming language as an example, you will then learn how to develop a frontend and generate LLVM IR, hand it over to the optimization pipeline, and generate machine code from it.

12. Compilers: Principles, Techniques, and Tools

Author: by Alfred V. Aho
796 pages

View on Amazon

This introduction to compilers is the direct descendant of the well-known book by Aho and Ullman, Principles of Compiler Design. The authors present updated coverage of compilers based on research and techniques that have been developed in the field over the past few years.

The book provides a thorough introduction to compiler design and covers topics such as context-free grammars, fine state machines, and syntax-directed translation.0201100886B04062001

13. Modern C

Author: by Jens Gustedt
Manning Publications
408 pages

View on Amazon

If you think “Modern” and “C” don’t belong in the same sentence, think again. The C standards committee actively reviews and extends the language, with updated published C standards as recently as 2018. In Modern C, author Jens Gustedt teaches you the skills and features you need to write relevant programs in this tried-and-true language, including Linux and Windows, device drivers, web servers and browsers, smartphones, and much more!

Modern C teaches you to take your C programming skills to new heights, whether you’re just starting out with C or have more extensive experience. Organized by level, this comprehensive guide lets you jump in where it suits you best while still reaping the maximum benefits.

Purchase of the print book includes a free eBook in PDF, Kindle, and ePub formats from Manning Publications.

14. The Definitive ANTLR 4 Reference

Author: by Terence Parr
Pragmatic Bookshelf
328 pages

View on Amazon

Programmers run into parsing problems all the time. Whether it’s a data format like JSON, a network protocol like SMTP, a server configuration file for Apache, a PostScript/PDF file, or a simple spreadsheet macro language-ANTLR v4 and this book will demystify the process.

ANTLR v4 has been rewritten from scratch to make it easier than ever to build parsers and the language applications built on top. This completely rewritten new edition of the bestselling Definitive ANTLR Reference shows you how to take advantage of these new features.

Build your own languages with ANTLR v4, using ANTLR’s new advanced parsing technology. In this book, you’ll learn how ANTLR automatically builds a data structure representing the input (parse tree) and generates code that can walk the tree (visitor). You can use that combination to implement data readers, language interpreters, and translators.

You’ll start by learning how to identify grammar patterns in language reference manuals and then slowly start building increasingly complex grammars. Next, you’ll build applications based upon those grammars by walking the automatically generated parse trees. Then you’ll tackle some nasty language problems by parsing files containing more than one language (such as XML, Java, and Javadoc).

15. Language Implementation Patterns: Create Your Own Domain-Specific and General Programming Languages (Pragmatic Programmers)

Author: by Terence Parr
Pragmatic Bookshelf

374 pages

View on Amazon

Learn to build configuration file readers, data readers, model-driven code generators, source-to-source translators, source analyzers, and interpreters. You don’t need a background in computer science-ANTLR creator Terence Parr demystifies language implementation by breaking it down into the most common design patterns.

Pattern by pattern, you’ll learn the key skills you need to implement your own computer languages. Knowing how to create domain-specific languages (DSLs) can give you a huge productivity boost. Instead of writing code in a general-purpose programming language, you can first build a custom language tailored to make you efficient in a particular domain.

The key is understanding the common patterns found across language implementations. Language Design Patterns identifies and condenses the most common design patterns, providing sample implementations of each. The pattern implementations use Java, but the patterns themselves are completely general. Some of the implementations use the well-known ANTLR parser generator, so readers will find this book an excellent source of ANTLR examples as well.

16. Advanced Compiler Design and Implementation

Author: by Steven Muchnick
Morgan Kaufmann
888 pages

View on Amazon

From the Foreword by Susan L. Graham: This book takes on the challenges of contemporary languages and architectures, and prepares the reader for the new compiling problems that will inevitably arise in the future. The definitive book on advanced compiler design This comprehensive, up-to-date work examines advanced issues in the design and implementation of compilers for modern processors.

Written for professionals and graduate students, the book guides readers in designing and implementing efficient structures for highly optimizing compilers for real-world languages. Covering advanced issues in fundamental areas of compiler design, this book discusses a wide array of possible code optimizations, determining the relative importance of optimizations, and selecting the most effective methods of implementation.

Lays the foundation for understanding the major issues of advanced compiler design* Treats optimization in-depth* Uses four case studies of commercial compiling suites to illustrate different approaches to compiler structure, intermediate-code design, and optimizationthese include Sun Microsystems’s compiler for SPARC, IBM’s for POWER and PowerPC, DEC’s for Alpha, and Intel’s for Pentium an related processors* Presents numerous clearly defined algorithms based on actual cases* Introduces Informal Compiler Algorithm Notation (ICAN), a language devised by the author to communicate algorithms effectively to people