This repository contains handouts, PowerPoint slides, and Java source files to accompany the book Compiler Design Using Java®: An Object-Oriented Approach (Fourth Edition) by John I. Moore, Jr. The book covers implementation of a compiler for CPRL (Compiler PRoject Language), a programming language designed for teaching the basics of compiler construction. CPRL includes variables, statements, expressions, arrays, records, and subprograms. The target language for the compiler is assembly language for the CPRL Virtual Machine (CVM), a virtual machine with a stack-based architecture that is similar to but much simpler than the Java Virtual Machine (JVM). Organization of the compiler project is described in Appendix A. The book is available on Amazon, Barnes & Noble, and, at a discount, directly from the publisher IngramSpark.
The following sections from the book are provided as PDF documents in the Book directory.
- Table of Contents
- Preface
- Appendix A: The Compiler Project
- Appendix C: Definition of the Programming Language CPRL
- Appendix E: Definition of the CPRL Virtual Machine
- Appendix G: JIT Compilation versus AOT Compilation
