Modern Compiler Implementation in Java, 2/e (Hardcover)
暫譯: 現代編譯器實作(Java版,第2版)

Andrew W. Appel, Jens Palsberg

  • 出版商: Camberidge
  • 出版日期: 2002-10-21
  • 售價: $3,960
  • 貴賓價: 9.5$3,762
  • 語言: 英文
  • 頁數: 501
  • 裝訂: Hardcover
  • ISBN: 052182060X
  • ISBN-13: 9780521820608
  • 相關分類: Java 程式語言Compiler
  • 已絕版

買這商品的人也買了...

相關主題

商品描述

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 good coverage of current techniques in code generation and register allocation, as well as the compilation of functional and object-oriented languages, that is missing from most books. The most accepted and successful techniques are described concisely, rather than as an exhaustive catalog of every possible variant, and illustrated with actual Java classes. The first part of the book, Fundamentals of Compilation, is suitable for a one-semester first course in compiler design. The second part, Advanced Topics, which includes the compilation of object-oriented and functional languages, garbage collection, loop optimization, SSA form, instruction scheduling, and optimization for cache-memory hierarchies, can be used for a second-semester or graduate course. This new edition has been extensively rewritten to include more discussion of Java and object-oriented programming concepts, such as visitor patterns. A unique feature is the newly redesigned compiler project in Java, for a subset of Java itself. The project includes both front-end and back-end phases, so that students can build a complete working compiler in one semester.

Contents

Part I. Fundamentals of Compilation: 1. Introduction
2. Lexical analysis
3. Parsing
4. Abstract syntax
5. Semantic analysis
6. Activation records
7. Translation to intermediate code
8. Basic blocks and traces
9. Instruction selection
10. Liveness analysis
11. Register allocation
12. Putting it all together
Part II. Advanced Topics: 13. Garbage collection
14. Object-oriented languages
15. Functional programming languages
16. Polymorphic types
17. Dataflow analysis
18. Loop optimizations
19. Static single-assignment form
20. Pipelining and scheduling
21. The memory hierarchy
Appendix: Mini-Java reference manual.

商品描述(中文翻譯)

這本教科書描述了編譯器的所有階段:詞法分析、解析、抽象語法、語義行為、中間表示、通過樹匹配的指令選擇、數據流分析、圖著色寄存器分配以及運行時系統。它對於當前的代碼生成和寄存器分配技術有良好的覆蓋,並且涵蓋了功能性和物件導向語言的編譯,這在大多數書籍中是缺失的。最被接受和成功的技術被簡明地描述,而不是作為每一種可能變體的詳盡目錄,並用實際的 Java 類進行說明。本書的第一部分,編譯的基本原理,適合用作一學期的編譯器設計入門課程。第二部分,高級主題,包括物件導向和功能性語言的編譯、垃圾回收、迴圈優化、靜態單一賦值形式、指令排程以及針對快取記憶體層次的優化,可以用於第二學期或研究生課程。這一新版已被廣泛重寫,以包含更多有關 Java 和物件導向程式設計概念的討論,例如訪問者模式。一個獨特的特點是重新設計的 Java 編譯器專案,針對 Java 的一個子集。該專案包括前端和後端階段,使學生能夠在一學期內構建一個完整的可運行編譯器。

內容

第一部分:編譯的基本原理:1. 介紹
2. 詞法分析
3. 解析
4. 抽象語法
5. 語義分析
6. 活動記錄
7. 轉換為中間代碼
8. 基本區塊和追蹤
9. 指令選擇
10. 活性分析
11. 寄存器分配
12. 整合所有內容
第二部分:高級主題:13. 垃圾回收
14. 物件導向語言
15. 功能性程式語言
16. 多型類型
17. 數據流分析
18. 迴圈優化
19. 靜態單一賦值形式
20. 流水線和排程
21. 記憶體層次
附錄:Mini-Java 參考手冊。