《編譯原理技術與工具》(第二版)是一本編譯器設計的教程,本書重點主要放在解決設計語言翻澤器過程中普遍需要面對的一些問題上,而並不考慮源語言或者目標機器。
本書可作為高校計算機專業本科和研究生編譯原理的教科書,也可供從事計算機軟體開發的人員參考。
基本介紹
內容提要,編輯推薦,作者簡介,目錄,
內容提要
本書共12章。第一章是一些關於學習動機的資料,同時也給出了一些關於計算機體系結構和程式設計語言原理的背景知識。第二章開發了一個縮微的編譯器,並介紹了很多重要的概念,這些概念將在後面的各個章節中深入介紹。這個編譯器本身在附錄中給出。第三章討論了詞法分析、正則表達式、有窮狀態自動機和詞法分析器的生成工具,這些內容是各種正文處理的基礎。第四章討論了主流的語法分析方法,包括自頂向下方法(遞歸下降法,LL技術)和自底向上方法(LR技術和它的變體)。第五章介紹了語法制導定義和語法制導翻譯的基本思想。第六章介紹了如何使用第五章中的理論為一個典型的程式設計語言生成中間代碼。第七章討論了運行時刻環境,主要是運行時刻棧的管理和垃圾收集機制。第八章介紹了關於目標代碼生成的內容,主要討論了基本塊的構造,從表達式和基本塊生成代碼的方法,以及暫存器分配技術。第九章介紹了代碼最佳化技術,包括流圖、數據流分析框架以及求解這些框架的疊代算法。第十章討論了指令級最佳化。該章的重點是從小段指令代碼中抽取並行性,並在那些可以同時做多件事情的單處理器上調度這些指令。第十一章講的是大規模並行的檢測和利用。這章的重點是數值計算代碼,這些代碼具有對多維數組進行遍歷的緊緻循環。第十二章介紹的是關於過程間分析技術的內容,討論了指針分析、別名和數據流分析,這些分析中都考慮了到達代碼中某個給定點時的過程調用序列。
編輯推薦
經典“龍”書的這一個新版本經過了全面的修訂,包含了編譯技術中的新進展。這本書全面地介紹了編譯器的設計,並繼續強調編譯技術在軟體和開發中的廣泛套用。本書的前半部分被設計用於本科編譯課程,而後半部分可以用於著重於代碼最佳化的研究生課程。
作者簡介
AlfredV.Aho是哥倫比亞大學的LawrenceGussman計算機科學教授。Aho教授多次獲獎,其中包括哥倫比亞校友會頒發的2003年度GreatTeacher獎和電子與電器工程師協會的JohnvonNeumann獎章。他是美國國家工程院院士,以AACM和IEEE的會員。
目錄
1Introduction
1.1LanguageProcessors
1.1.1ExercisesforSection1.1
1.2TheStructureofaCompiler
1.2.1LexicalAnalysis
1.2.2SyntaxAnalysis
1.2.3SemanticAnalysis
1.2.4IntermediateCodeGeneration
1.2.5CodeOptimization
1.2.6CodeGeneration
1.2.7Symbol-TableManagement
1.2.8TheGroupingofPhasesintoPasses
1.2.9Compiler-ConstructionTools
1.3TheEvolutionofProgrammingLanguages
1.3.1TheMovetoHigher-levelLanguages
1.3.2ImpactsonCompilers
1.3.3ExercisesforSection1.3
1.4TheScienceofBuildingaCompiler
1.4.1ModelinginCompilerDesignandImplementation
1.4.2TheScienceofCodeOptimization
1.5ApplicationsofCompilerTechnology
1.5.1ImplementationofHigh-LevelProgrammingLanguages
1.5.2OptimizationsforComputerArchitectures
1.5.3DesignofNewComputerArchitectures
1.5.4ProgramTranslations
1.5.5SoftwareProductivityTools
1.6PrograminingLanguageBasics
1.6.1TileStatic/DynamicDistinction
1.6.2EnvironmentsandStates
1.6.3StaticScopeandBlockStructure
1.6.4ExplicitAccessControl
1.6.5DynamicScope
1.6.6ParameterPassingMechanisms
……
2ASimpleSyntan-DirectedTranslator
3LexicalAnalysis
4SyntaxAnalysis
5Syntax-DirectedTranslation
6Intermediate-CodeGeneration
7Run-TimeEnvironments
8CodeGeneration
9Machine-IndependentOptimizations
10Instruction*LevelParallelism
11OptimizingforParallelismandLocality
12InterproceduralAnalysis
AACompleteFrontEnd
BFindingLinearlyIndependentSolutions
Index