Compiler Design Using Java® : An Object-Oriented Approach - John I. Moore

Compiler Design Using Java®

An Object-Oriented Approach

By: John I. Moore

Paperback | 28 October 2024 | Edition Number 4

At a Glance

Paperback


RRP $83.55

$60.90

27%OFF

or 4 interest-free payments of $15.22 with

 or 

Aims to ship in 7 to 10 business days

This book is designed primarily for use as a textbook in a one-semester course on compiler design for undergraduate students and beginning graduate students. The only prerequisites for this book are familiarity with basic algorithms and data structures (lists, maps, recursion, etc.), a rudimentary knowledge of computer architecture and assembly language, and some experience with the Java programming language.

A complete study of compilers could easily fill several graduate-level courses, and therefore some simplifications and compromises are necessary for a one-semester course that is accessible to undergraduate students. Following are some of the decisions made in order to accommodate the goals of this book.

  1. The book has a narrow focus as a project-oriented course on compilers. Compiler theory is kept to a minimum, but the project orientation retains the "fun" part of studying compilers.
  2. The source language being compiled is relatively simple, but it is powerful enough to be interesting and challenging. It has basic data types, arrays, procedures, functions, and parameters, but it relegates many other interesting language features to the project exercises.
  3. The target language is assembly language for a virtual machine with a stack-based architecture, similar to but much simpler than the Java Virtual Machine (JVM). This approach greatly simplifies code generation. Both an assembler and an emulator for the virtual machine are provided on the course web site.
  4. No special compiler-related tools are required or used within the book. Students require access only to a Java compiler and a text editor, but most students will want to use Java with an Integrated Development Environment (IDE).
  5. One very important component of a compiler is the parser, which verifies that a source program conforms to the language syntax and produces an intermediate representation of the program that is suitable for additional analysis and code generation. There are several different approaches to parsing, but in keeping with the focus on a one-semester course, this book emphasizes only one approach, recursive descent parsing with several lookahead tokens.
Industry Reviews

From previous editions:

"Best intro book on Compilers! Well explained yet succinct!"

"I genuinely enjoyed reading it and rarely had to reread sections as it was well-written, comprehensive, and fun. I recommend this book to any student, professor teaching compiler design, and anyone looking for a challenge."

"I program differently and more efficiently because of this book, and I hope everyone has the chance to read it. This book will change how you view both programming and computer science as a topic."

"This is the best book I have encountered so far on my way to gain a deep understanding about how complier works. I truly read this book from the first page to the very end, and couple times on several chapters. It is a fun process - very easy to follow, in a step by step fashion. Everything that is needed, after reading the book, you know why it is needed and how it is implemented. A truly great book that will not scare you away. Start from this book, much better than the Dragon one."

More in Compilers & Interpreters

Definitive ANTLR 4 Reference : 2nd Edition - Terence Parr

RRP $70.35

$33.25

53%
OFF
Flex & Bison [With Access Code] : O'Reilly Ser. - John Levine

RRP $57.00

$28.25

50%
OFF
Java For Dummies : Java for Dummies - Barry Burd

RRP $57.95

$40.75

30%
OFF
Metaprogramming Elixir - Chris Mccord

RRP $32.35

$20.80

36%
OFF
Modern Systems Programming with Scala Native - Richard Whaling

RRP $87.35

$40.25

54%
OFF
NUnit Pocket Reference : Pocket Reference (O'Reilly) - Bill Hamilton
Language Implementation Patterns : Pragmatic Programmers - Terence Parr
Compilers : Principles, Techniques, and Tools - Alfred Aho

RRP $295.96

$226.90

23%
OFF
Compiler Design Using Java® : An Object-Oriented Approach - John I. Moore
Compiler Design Using Kotlin⢠: An Object-Oriented Approach - John I. Moore
Compilers : A Practical Approach - James E Jr Miller
API Design : Crafting Interfaces That Don't Suck - Percy Hawkins

RRP $131.99

$90.90

31%
OFF
Rust Programming : Safe, Fast, and Fucking Secure - Herkimer Throckmorton

RRP $131.99

$90.90

31%
OFF