55 Best Compiler Books of All Time

We've researched and ranked the best compiler books in the world, based on recommendations from world experts, sales data, and millions of reader ratings. Learn more

Featuring recommendations from Emma Watson, James Comey, Elon Musk, and 6 other experts.
1

Compilers

Principles, Techniques, and Tools

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

See more recommendations for this book...

2

Writing A Compiler In Go

This is the sequel to Writing An Interpreter In Go. We're picking up right where we left off and write a compiler and a virtual machine for Monkey.

Runnable and tested code front and center, built from the ground up, step by step — just like before.

But this time, we're going to define bytecode, compile Monkey and execute it in our very own virtual machine. It's the next step in Monkey's evolution.

It's the sequel to … a programming language

Writing A Compiler In Go is the sequel to Writing An Interpreter In Go. It starts right where the...
more

See more recommendations for this book...

3

Engineering a Compiler

The proliferation of processors, environments, and constraints on systems has cast compiler technology into a wider variety of settings, changing the compiler and compiler writer's role. No longer is execution speed the sole criterion for judging compiled code. Today, code might be judged on how small it is, how much power it consumes, how well it compresses, or how many page faults it generates. In this evolving environment, the task of building a successful compiler relies upon the compiler writer's ability to balance and blend algorithms, engineering insights, and careful planning. Today's... more

See more recommendations for this book...

4
Understand .NET memory management internal workings, pitfalls, and techniques in order to effectively avoid a wide range of performance and scalability problems in your software. Despite automatic memory management in .NET, there are many advantages to be found in understanding how .NET memory works and how you can best write software that interacts with it efficiently and effectively. Pro .NET Memory Management is your comprehensive guide to writing better software by understanding and working with memory management in .NET.
Thoroughly vetted by the .NET Team at Microsoft, this...
more

See more recommendations for this book...

6
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...
more

See more recommendations for this book...

7
Design and create video games using Construct 2. No prior experience is required.Game Development with Construct 2 teaches you to create 12 different game projects from a variety of genres, including car racing and tower defense to platformer and action-adventure. The software is user friendly and powerful, and the games you create can be exported to run on the web, desktop computers, and smartphones.
What You'll Learn
Create complete functional games using the Construct 2 game engine


Understand general logical structures underlying video game...
more

See more recommendations for this book...

8
Compiler Construction: Principles and Practice features a comprehensive, hands-on case study project for constructing an actual, working compiler. less

See more recommendations for this book...

9

Digital Design and Computer Architecture

Digital Design and Computer Architecture is designed for courses that combine digital logic design with computer organization/architecture or that teach these subjects as a two-course sequence. Digital Design and Computer Architecture begins with a modern approach by rigorously covering the fundamentals of digital logic design and then introducing Hardware Description Languages (HDLs). Featuring examples of the two most widely-used HDLs, VHDL and Verilog, the first half of the text prepares the reader for what follows in the second: the design of a MIPS Processor. By the end of... more

See more recommendations for this book...

10

The Shellcoder's Handbook

Discovering and Exploiting Security Holes

This much-anticipated revision, written by the ultimate group of top security experts in the world, features 40 percent new content on how to find security holes in any operating system or applicationNew material addresses the many new exploitation techniques that have been discovered since the first edition, including attacking "unbreakable" software packages such as McAfee's Entercept, Mac OS X, XP, Office 2003, and VistaAlso features the first-ever published information on exploiting Cisco's IOS, with content that has never before been exploredThe companion Web site features downloadable... more

See more recommendations for this book...

Don't have time to read the top Compiler books of all time? Read Shortform summaries.

Shortform summaries help you learn 10x faster by:

  • Being comprehensive: you learn the most important points in the book
  • Cutting out the fluff: you focus your time on what's important to know
  • Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
12
Long-awaited revision to a unique guide that covers both compilers and interpreters Revised, updated, and now focusing on Java instead of C++, this long-awaited, latest edition of this popular book teaches programmers and software engineering students how to write compilers and interpreters using Java. You?ll write compilers and interpreters as case studies, generating general assembly code for a Java Virtual Machine that takes advantage of the Java Collections Framework to shorten and simplify the code. In addition, coverage includes Java Collections Framework, UML modeling, object-oriented... more

See more recommendations for this book...

13

Write code that writes code with Elixir macros. Macros make metaprogramming possible and define the language itself. In this book, you'll learn how to use macros to extend the language with fast, maintainable code and share functionality in ways you never thought possible. You'll discover how to extend Elixir with your own first-class features, optimize performance, and create domain-specific languages.

Metaprogramming is one of Elixir's greatest features. Maybe you've played with the basics or written a few macros. Now you want to take it to the next level. This book is a...

more

See more recommendations for this book...

16
Get a practical, hands-on introduction to the Haskell language, its libraries and environment, and to the functional programming paradigm that is fast growing in importance in the software industry. This book contains excellent coverage of the Haskell ecosystem and supporting tools, which include the Cabal build tool for managing projects and modules, the HUnit and QuickCheck tools for software testing, the Scotty framework for developing web applications, Persistent and Esqueleto for database access, and parallel and distributed programming libraries.

You'll see how functional...
more

See more recommendations for this book...

17
Use Windows debuggers throughout the development cycle—and build better software

Rethink your use of Windows debugging and tracing tools—and learn how to make them a key part of test-driven software development. Led by a member of the Windows Fundamentals Team at Microsoft, you’ll apply expert debugging and tracing techniques—and sharpen your C++ and C# code analysis skills—through practical examples and common scenarios. Learn why experienced developers use debuggers in every step of the development process, and not just when bugs appear.

Discover how to:
more

See more recommendations for this book...

18
Build advanced authentication solutions for any cloud or web environment

Active Directory has been transformed to reflect the cloud revolution, modern protocols, and today's newest SaaS paradigms. This is an authoritative, deep-dive guide to building Active Directory authentication solutions for these new environments. Author Vittorio Bertocci drove these technologies from initial concept to general availability, playing key roles in everything from technical design to documentation. In this book, he delivers comprehensive guidance for building complete solutions. For each...
more

See more recommendations for this book...

19

An Introduction to GCC

This manual provides a complete tutorial introduction to the GNU C and C++ compilers, gcc and g++. Many books teach the C and C++ languages, this book teaches you how to use the compiler itself. All the common problems and error messages encountered by new users of GCC are carefully explained, with numerous easy-to-follow "Hello World" examples. Topics covered include: compiling C and C++ programs using header files and libraries, warning options, use of the preprocessor, static and dynamic linking, debugging, optimization, platform-specific options, profiling and coverage testing, paths and... more

See more recommendations for this book...

20

Linkers and Loaders

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

See more recommendations for this book...

Don't have time to read the top Compiler books of all time? Read Shortform summaries.

Shortform summaries help you learn 10x faster by:

  • Being comprehensive: you learn the most important points in the book
  • Cutting out the fluff: you focus your time on what's important to know
  • Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
21

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

more

See more recommendations for this book...

22
This textbook on Python 3 explains concepts such as variables and what they represent, how data is held in memory, how a for loop works and what a string is. It also introduces key concepts such as functions, modules and packages as well as object orientation and functional programming. Each section is prefaced with an introductory chapter, before continuing with how these ideas work in Python.

Topics such as generators and coroutines are often misunderstood and these are explained in detail, whilst topics such as Referential Transparency, multiple inheritance and exception...
more

See more recommendations for this book...

23

Programming Language Pragmatics

Programming Language Pragmatics addresses the fundamental principles at work in the most important contemporary languages, highlights the critical relationship between language design and language implementation, and devotes special attention to issues of importance to the expert programmer. Thanks to its rigorous but accessible teaching style, you ll emerge better prepared to choose the best language for particular projects, to make more effective use of languages you already know, and to learn new languages quickly and completely.

Features

...
more

See more recommendations for this book...

24
A compiler translates a program written in a high level language into a program written in a lower level language. For students of computer science, building a compiler from scratch is a rite of passage: a challenging and fun project that offers insight into many different aspects of computer science, some deeply theoretical, and others highly practical. This book offers a one semester introduction into compiler construction, enabling the reader to build a simple compiler that accepts a C-like language and translates it into working X86 or ARM assembly language. It is most suitable for... more

See more recommendations for this book...

25

Beginning COBOL for Programmers







Beginning COBOL for Programmers is a comprehensive, sophisticated tutorial and modular skills reference on the COBOL programming language for established programmers. This book is for you if you are a developer who would like to--or must--add COBOL to your repertoire. Perhaps you recognize the opportunities presented by the current COBOL skills crisis, or are working in a mission critical enterprise which retains legacy COBOL applications. Whatever your situation, Beginning COBOL for Programmers meets your needs as an...
more

See more recommendations for this book...

26
Grab hold of your C++ because here you'll learn how to use it to write compilers and interpreters--those programs that translate high-level computer code into machine-executable code. The only C++-based book on compilers and interpreters available, this revised and updated edition shows you the ABC's of reading and listing a program, breaking it into tokens, parsing it, and examining its syntax. Then it shows you how to build an actual interpreter, debugger, and finally, a compiler. less

See more recommendations for this book...

27

Modern Compiler Implementation in Java

This textbook describes all phases of a compiler: lexical analysis, parsing, abstract syntax, semantic actions, intermediate representations, instruction selection via tree matching, dataflow analysis, graph-coloring register allocation, and runtime systems. It includes thorough coverage of current techniques in code generation and register allocation, and the compilation of functional and object-oriented languages. The most accepted and successful techniques are described and illustrated with actual Java^TM(R) classes. The first part is suitable for a one-semester first course in compiler... more

See more recommendations for this book...

28
Modern computer architectures designed with high-performance microprocessors offer tremendous potential gains in performance over previous designs. Yet their very complexity makes it increasingly difficult to produce efficient code and to realize their full potential. This landmark text from two leaders in the field focuses on the pivotal role that compilers can play in addressing this critical issue.

The basis for all the methods presented in this book is data dependence, a fundamental compiler analysis tool for optimizing programs on high-performance microprocessors and parallel...
more

See more recommendations for this book...

29

Introduction to Compiler Design

This textbook is intended for an introductory course on Compiler Design, suitable for use in an undergraduate programme in computer science or related fields. The text presents techniques for making realistic, though non-optimizing, compilers for simple programming languages. less

See more recommendations for this book...

30
Book is now out of print, but it is now available online in its entirety. less

See more recommendations for this book...

Don't have time to read the top Compiler books of all time? Read Shortform summaries.

Shortform summaries help you learn 10x faster by:

  • Being comprehensive: you learn the most important points in the book
  • Cutting out the fluff: you focus your time on what's important to know
  • Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
31

Invitation to Computer Science

INVITATION TO COMPUTER SCIENCE is a well-respected text that provides an overview of the computer science field. Using a flexible, non-language specific model, INVITATION TO COMPUTER SCIENCE offers a solid foundation for the first course in a Computer Science curriculum. INVITATION TO COMPUTER SCIENCE, 6TH EDITION maintains its bestselling, algorithm-driven approach and includes expanded chapter exercises and practice problems, new material on topics such as multicore and parallel systems, cloud computing, wireless communications, embedded computing, agile software development, emerging... more

See more recommendations for this book...

32
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...
more

See more recommendations for this book...

33
WHILE OTHER KETO DIET COOKBOOKS
are poorly written, have no recipe index, no meal plan and shopping list, lots of editing errors, incomplete instructions, plain and uninspiring recipes, or simply recipes that are overcomplicated, The Super Easy Keto Diet Cookbook by Rachel Collins features the best variety of well-thought-out and well-tested recipes you should expect with nutrition facts for every recipe in the book, comes with the well-structured recipe index and 30-day meal plan for weight loss including shopping list.


It includes...
more

See more recommendations for this book...

34
Implementing a programming language means bridging the gap from the programmer's high-level thinking to the machine's zeros and ones. If this is done in an efficient and reliable way, programmers can concentrate on the actual problems they have to solve, rather than on the details of machines. But understanding the whole chain from languages to machines is still an essential part of the training of any serious programmer. It will result in a more competent programmer, who will moreover be able to develop new languages. A new language is often the best way to solve a problem, and less... more

See more recommendations for this book...

35

Closure

The Definitive Guide

If you're ready to use Closure to build rich web applications with JavaScript, this hands-on guide has precisely what you need to learn this suite of tools in depth. Closure makes it easy for experienced JavaScript developers to write and maintain large and complex codebases -- as Google has demonstrated by using Closure with Gmail, Google Docs, and Google Maps.

Author and Closure contributor Michael Bolin has included numerous code examples and best practices, as well as valuable information not available publicly until now. You'll learn all about Closure's Library, Compiler,...
more

See more recommendations for this book...

37
A True Textbook for an Introductory Course, System Administration Course, or a Combination Course

Linux with Operating System Concepts merges conceptual operating system (OS) and Unix/Linux topics into one cohesive textbook for undergraduate students. The book can be used for a one- or two-semester course on Linux or Unix. It is complete with review sections, problems, definitions, concepts, and relevant introductory material, such as binary and Boolean logic, OS kernels, and the role of the CPU and memory hierarchy.

Details for...
more

See more recommendations for this book...

38
The GNU Compiler Collection (GCC) offers a variety of compilers for different programming languages including C, C++, Java, Fortran, and Ada. Providing in-depth information on GCCUs enormous array of features and options, and introducing crucial tools such as autoconf, gprof, and libtool, this second edition functions as both a guide and reference. less

See more recommendations for this book...

39
Become a more productive programmer with "Efficient R Programming." Drawing on years of experience teaching R courses, authors Colin Gillespie and Robin Lovelace give practical advice on a range of topics from optimizing set-up of RStudio to leveraging C++ that make this book a valuable asset for both experienced and novice programmers. It s suitable for academics, business users, and programmers from a wide range of backgrounds.Get practical, tried-and-true advice from longtime R instructorsDive into a wide range of topics, including RStudio set-up and leveraging C++, suitable for all skill... more

See more recommendations for this book...

Don't have time to read the top Compiler books of all time? Read Shortform summaries.

Shortform summaries help you learn 10x faster by:

  • Being comprehensive: you learn the most important points in the book
  • Cutting out the fluff: you focus your time on what's important to know
  • Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
41
Xamarin Mobile Application Development is a hands-on Xamarin.Forms primer and a cross-platform reference for building native Android, iOS, and Windows Phone apps using C# and .NET. This book explains how to use Xamarin.Forms, Xamarin.Android, and Xamarin.iOS to build business apps for your customers and consumer apps for Google Play and the iTunes App Store.

Learn how to leverage Xamarin.Forms for cross-platform development using the most common UI pages, layouts, views, controls, and design patterns. Combine these with platform-specific UI to craft a visually stunning and highly...
more

See more recommendations for this book...

44

Crafting a Compiler with C

This extremely practical, hands-on approach to building compilers using the C programming language includes numerous examples of working code from a real compiler and covers such advanced topics as code generation, optimization, and real-world parsing. It is an ideal reference and tutorial. 0805321667B04062001 less

See more recommendations for this book...

46

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

more

See more recommendations for this book...

47

A Retargetable C Compiler

Design and Implementation

This new text examines the design and implementation of Icc, a production-quality, retargetable compiler, designed at AT&T Bell Laboratories and Princeton University for the ANSI C programming language. The authors' innovative approach - a "literate program" that intermingles the text with the source code - gives a detailed tour of the code that explains the implementation and design decisions reflected in the software. And while most books describe toy compilers or focus on isolated pieces of code, the authors have made available the entire source code for a real compiler. Structured as... more

See more recommendations for this book...

49
The core of scientific computing is designing, writing, testing, debugging and modifying numerical software for application to a vast range of areas: from graphics, meteorology and chemistry to engineering, biology and finance. Scientists, engineers and computer scientists need to write good code, for speed, clarity, flexibility and ease of re-use. Oliveira and Stewart's style guide for numerical software points out good practices to follow, and pitfalls to avoid. By following their advice, readers will learn how to write efficient software, and how to test it for bugs, accuracy and... more

See more recommendations for this book...

Don't have time to read the top Compiler books of all time? Read Shortform summaries.

Shortform summaries help you learn 10x faster by:

  • Being comprehensive: you learn the most important points in the book
  • Cutting out the fluff: you focus your time on what's important to know
  • Interactive exercises: apply the book's ideas to your own life with our educators' guidance.
53
WHILE OTHER INSTANT POT COOKBOOKS are poorly written, have no recipe index, lots of editing errors, bad recipes, or simply recipes that are overcomplicated, the Instant Pot Cookbook by Rachel Collins feature the best variety of well-thought-out and well-tested recipes you should expect with nutrition facts for every recipe in the book and comes with the well-structured recipe index.


It includes the detailed instructions on how to use your instant pot, perfect cookbook for beginners and pro instant pot users...
more

See more recommendations for this book...

54

Modern Compiler Design

"Modern Compiler Design" makes the topic of compiler design more accessible by focusing on principles and techniques of wide application. By carefully distinguishing between the essential (material that has a high chance of being useful) and the incidental (material that will be of benefit only in exceptional cases) much useful information was packed in this comprehensive volume. The student who has finished this book can expect to understand the workings of and add to a language processor for each of the modern paradigms, and be able to read the literature on how to proceed. The first... more

See more recommendations for this book...

Don't have time to read the top Compiler books of all time? Read Shortform summaries.

Shortform summaries help you learn 10x faster by:

  • Being comprehensive: you learn the most important points in the book
  • Cutting out the fluff: you focus your time on what's important to know
  • Interactive exercises: apply the book's ideas to your own life with our educators' guidance.