Compiler Construction Using Java, JavaCC, and Yacc (Hardcover)
內容描述
<內容簡介>
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 projectsCompiler 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