<內容簡介>
Compiler construction is a tricky subject, involving theory, the application of that theory, and programming technology. Virtually every day, advances in computer technology propel advances in compiler technology. Compiler Construction Using Java, JavaCC, and Yacc covers every topic essential to learning compilers from the ground up and is accompanied by a powerful and flexible software package for evaluating projects as well as several tutorials, well-defined projects, and test cases. While the coverage of JavaCC is entirely optional, this book provides the only comprehensive introduction to the topic currently available.
Far easier to read and understand than any other compiler guide, this book sets a new standard for learning this invaluable skill. It provides:
1. Strong coverage of formal languages, including context-sensitive and unrestricted languages as well as regular and context-free languages
2. A clear exposition of compiler design and implementation theory
3. Numerous well-defined projects, using source language with six levels of complexity
4. A complete teaching support software package that evaluates compiler projects for correctness, run time, and size of code, and runs on multiple platforms
5. Immediate feedback for students on their projects
Compiler Construction Using JavaTM, JavaCC, and Yacc provides substantial support for each project, many of which are incremental enhancements of previous projects. The goals at each new level are challenging but achievable and can be reached in several different ways, for example, by writing a compiler or interpreter by hand, with JavaCC, or with Yacc.
<章節目錄>
Preface xv
Ch1: Strings, Languages, and Compilers
Ch2: Context-Free Grammars, Part 1
Ch3: Context-Free Grammars, Part 2
Ch4: Context-Free Grammars, Part 3
Ch5: Chomsky’s Hierarchy
Ch6: Top-Down Parsing
Ch7: LL(1) Grammars
Ch8: Table-Driven Stack Parser
Ch9: Recursive-Descent Parsing
Ch10: Recursive-Descent Translation
Ch11: Assembly Language
Ch12: S1—A Simple Compiler
Ch13: JavaCC
Ch14: Building on S2
Ch15: Compiling Control Structures
Ch16: Compiling Programs in Functional Form
Ch17: Finite Automata
Ch18: Capstone Project: Implementing Grep Using Compiler Technology
Ch19: Compiling to a Register-Oriented Architecture
Ch 20: Optimization
Ch21: Interpreters
Ch22: Bottom-Up Parsing
Ch23: yacc 587
Appendix A. Stack Instruction Set
Appendix B. Register Instruction Set
References
Index