
《编译原理(英文版·第2版)》是编译领域无可替代的经典著作,被广大计算机专业人士誉为“龙书”。《编译原理(英文版·第2版)》上一版自1986年出版以来,被世界各地的著名高等院校和研究机构(包括美国哥伦比亚大学、斯坦福大学、哈佛大学、普林斯顿大学、贝尔实验室)作为本科生和研究生的编译原理课程的教材。该书对我国高等计算机教育领域也产生了重大影响。
第2版对每一章都进行了全面的修订,以反映自上一版出版二十多年来软件工程、程序设计语言和计算机体系结构方面的发展对编译技术的影响。
《编译原理(英文版·第2版)》全面介绍了编译器的设计。并强调编译技术在软件设计和开发中的广泛应用,每章中都包含大量的习题和丰富的参考文献。《编译原理(英文版·第2版)》适合作为高等院校计算机专业本科生和研究生的编译原理与技术课程的教材,也可供广大计算机技术人员参考。
编辑推荐
《编译原理(英文版·第2版)》:经典原版书库 作者简介
作者:(美国)阿霍(Alfred V.Aho) (美国)Monica S.Lam (美国)Ravi Sethi (美国)Jeffrey D.Ullman
AlfredV.Aho,美国哥伦比亚大学教授。美国国家工程院院士,ACM和lEEE会士,曾获得IEEE的冯·诺伊曼
奖。著有多部算法、数据结构、编译器、数据库系统及计算机科学基础方面的著作。
MonicaS.Lam,斯坦福大学计算机科学系教授。曾任T'ensilica的首席科学家,也是Moka5的首任CEO。曾经主持SLJIF项目。该项目产生了最流行的研究用编译器之一。
Ravi Sethi,Avaya实验室总裁。曾任贝尔实验室高级副总裁和LLicentTectlIlologies通信软件的CTO。他曾在宾夕法尼亚州立大学、亚利桑那州立大学和普林斯顿大学任教,是ACM会士。
Jeffrey D.UIIman,斯坦福大学计算机科学系教授和GradianceCEO。他的研究兴趣包括数据库理论、数据库集成、数据挖掘和利用信息基础设施教学等。他是美国国家工程院院士、IEEE会士,获得过ACM的Karlstrom杰出教育奖和Knufh奖。 目录
Introduction
1.1 LanguageProcessors
1.1.1 ExercisesforSection1.1
1.2 TheStructureofaCompiler
1.2.1 LexicalAnalysis
1.2.2 SyntaxAnalysis
1.2.3 SemanticAnalysis
1.2.4 IntermediateCodeGeneration
1.2.5 CodeOptimization
1.2.6 CodeGeneration
1.2.7 Symbol-TableManagement.
1.2.8 TheGroupingofPhasesintoPasses
1.2.9 Compiler-ConstructionTools1.3 TheEvolutionofProgrammingLanguages
1.3.1 TheMovetoHigher-levelLanguages
1.3.2 ImpactsonCompilers
1.3.3 ExercisesforSection1.3 1.4 TheScienceofBuildingaCompiler
1.4.1 ModelinginCompilerDesignandImplementation.
1.4.2 TheScienceofCodeOptimization1.5 ApplicationsofCompilerTechnology.
1.5.1 ImplementationofHigh-LevelProgrammingLanguages
1.5.2 OptimizationsforComputerArchitectures
1.5.3 DesignofNewComputerArchitectures
1.5.4 ProgramTranslations
1.5.5 SoftwareProductivityTools1.6 ProgrammingLanguageBasics
1.6.1 TheStatic/DynamicDistinction
1.6.2 EnvironmentsandStates
1.6.3 StaticScopeandBlockStructure
1.6.4 ExplicitAccessControl
1.6.5 DynamicScope
1.6.6 ParameterPassingMechanisms
1.6.7 Aliasing
1.6.8 ExercisesforSection1.6
1.7 SummaryofChapter1
1.8 ReferencesforChapter1
2 ASimpleSyntax-DirectedTranslator
2.1 Introduction
2.2 SyntaxDefinition
2.2.1 DefinitionofGrammars
2.2.2 Derivations
2.2.3 ParseTrees
2.2.4 Ambiguity
2.2.5 AssociativityofOperators
2.2.6 PrecedenceofOperators
2.2.7 ExercisesforSection2.2 2.3 Syntax-DirectedTranslation
2.3.1 PostfixNotation
2.3.2 SynthesizedAttributes
2.3.3 SimpleSyntax-DirectedDefinitions
2.3.4 TreeTraversals
2.3.5 TranslationSchemes
2.3.6 ExercisesforSection2.3 2.4 Parsing
2.4.1 Top-DownParsing
2.4.2 PredictiveParsing
2.4.3 WhentoUsee-Productions
2.4.4 DesigningaPredictiveParser
2.4.5 LeftRecursion
2.4.6 ExercisesforSection2.4 2.5 ATranslatorforSimpleExpressions
2.5.1 AbstractandConcreteSyntax
2.5.2 AdaptingtheTranslationScheme
2.5.3 ProceduresfortheNonterminals
2.5.4 SimplifyingtheTranslator
2.5.5 TheCompleteProgram2.6 LexicalAnalysis
2.6.1 RemovalofWhiteSpaceandComments
2.6.2 ReadingAhead
2.6.3 Constants
2.6.4 RecognizingKeywordsandIdentifiers
2.6.5 ALexicalAnalyzer
2.6.6 ExercisesforSection2.6 2.7 SymbolTables
2.7.1 SymbolTablePerScope
2.7.2 TheUseofSymbolTables
2.8 IntermediateCodeGeneration
2.8.1 TwoKindsofIntermediateRepresentations
2.8.2 ConstructionofSyntaxTrees
2.8.3 StaticChecking
2.8.4 Three-AddressCode
2.8.5 ExercisesforSection2.8
2.9 SummaryofChapter2
3 LexicalAnalysis
3.1 TheRoleoftheLexicalAnalyzer
3.1.1 LexicalAnalysisVersusParsing
3.1.2 Tokens,Patterns,andLexemes
3.1.3 AttributesforTokens
3.1.4 LexicalErrors
3.1.5 ExercisesforSection3.1
3.2 InputBuffering
3.2.1 BufferPairs
3.2.2 Sentinels
3.3 SpecificationofTokens
3.3.1 StringsandLanguages
3.3.2 OperationsonLanguages
3.3.3 RegularExpressions
3.3.4 RegularDefinitions
3.3.5 ExtensionsofRegularExpressions
3.3.6 ExercisesforSection3.3
3.4 RecognitionofTokens
3.4.1 TransitionDiagrams
3.4.2 RecognitionofReservedWordsandIdentifiers
3.4.3 CompletionoftheRunningExample
3.4.4 ArchitectureofaTransition-Diagram-BasedLexicalAnalyzer
3.4.5 ExercisesforSection3.4
3.5 TheLexical-AnalyzerGeneratorLex
3.5.1 UseofLex
3.5.2 StructureofLexPrograms
3.5.3 ConflictResolutioninLex
3.5.4 TheLookaheadOperator
3.5.5 ExercisesforSection3.5
3.6 FiniteAutomata
3.6.1 NondeterministicFiniteAutomata
3.6.2 TransitionTables
3.6.3 AcceptanceofInputStringsbyAutomata
3.6.4 DeterministicFiniteAutomata
3.6.5 ExercisesforSection3.6
3.7 FromRegularExpressionstoAutomata
3.7.1 ConversionofanNFAtoaDFA
3.7.2 SimulationofanNFA
3.7.3 EfficiencyofNFASimulation
3.7.4 ConstructionofanNFAfromaRegularExpression
3.7.5 EfficiencyofString-ProcessingAlgorithms
3.7.6 ExercisesforSection3.7 3.8 DesignofaLexical-AnalyzerGenerator
3.8.1 TheStructureoftheGeneratedAnalyzer
3.8.2 PatternMatchingBasedonNFA's
3.8.3 DFA'sforLexicalAnalyzers
3.8.4 ImplementingtheLookaheadOperator
3.8.5 ExercisesforSection3.8 3.9 OptimizationofDFA-BasedPatternMatchers
3.9.1 ImportantStatesofanNFA
3.9.2 FunctionsComputedFromtheSyntaxTree
3.9.3 Computingnullable,firstpos,andlastpos
3.9.4 Computingfollowpos
3.9.5 ConvertingaRegularExpressionDirectlytoaDFA
3.9.6 MinimizingtheNumberofStatesofaDFA
3.9.7 StateMinimizationinLexicalAnalyzers
3.9.8 TradingTimeforSpaceinDFASimulation
3.9.9ExercisesforSection
3.9 3.I0SummaryofChapter33.1 1ReferencesforChapter3
4 SyntaxAnalysis
4.1 Introduction
4.1.1 TheRoleoftheParser
4.1.2 RepresentativeGrammars
4.1.3 SyntaxErrorHandling
4.1.4 Error-RecoveryStrategies4.2 Context-FreeGrammars
4.2.1 TheFormalDefinitionofaContext-FreeGrammar
4.2.2 NotationalConventions
4.2.3 Derivations
4.2.4 ParseTreesandDerivations
4.2.5 Ambiguity
4.2.6 VerifyingtheLanguageGeneratedbyaGrammar
4.2.7 Context-FreeGrammarsVersusRegularExpressions
4.2.8 ExercisesforSection4.2 4.3 WritingaGrammar
4.3.1 LexicalVersusSyntacticAnalysis
4.3.2 EliminatingAmbiguity
4.3.3 EliminationofLeftRecursion
4.3.4 LeftFactoring
…… 序言
In the time since the 1986 edition of this book, the world of compiler designhas changed significantly. Programming languages have evolved to present newcompilation problems. Computer architectures offer a | ISBN | |
|---|---|
| 出版社 | 机械工业出版社 |
| 作者 | 阿霍(Alfred V.Aho) |
| 尺寸 | 32 |