第1章编译原理优秀PPT.ppt
《第1章编译原理优秀PPT.ppt》由会员分享,可在线阅读,更多相关《第1章编译原理优秀PPT.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第1章编译原理现在学习的是第1页,共39页2Topics lOverviewofcompilers编译概述lLexicalanalysis(Scanning)词法分析lSyntacticanalysis(Parsing)语法分析lContext-sensitiveanalysis语义分析lTypechecking类型检查lRuntimeenvironments运行环境lSymboltables符号表lIntermediaterepresentations中间表示lIntermediatecodegeneration中间代码生成lCodeoptimization代码优化l代码生成现在学习的是第2
2、页,共39页331.1编译程序l编译器是什么?翻译一种语言(源语言)的程序成为等价的另一种语言(目标语言)的程序,并能报告源语言中错误的一种程序。Target Program目目标程序标程序编译器编译器Source program 源程序源程序Error messages出错信息出错信息Diverse&Varied现在学习的是第3页,共39页4程序设计语言l程序设计语言:程序设计语言:用来编写计算机程序的语言。程序设程序设程序设程序设计语言计语言计语言计语言 高级语言高级语言低级语言:面向机器的语言低级语言:面向机器的语言过程式语言过程式语言过程式语言过程式语言 Fortran,Pascal,
3、CFortran,Pascal,C函数式语言函数式语言函数式语言函数式语言 LispLisp逻辑式语言逻辑式语言逻辑式语言逻辑式语言 PrologProlog对象式语言对象式语言对象式语言对象式语言 C+C+汇编语言机器语言现在学习的是第4页,共39页5 5l什么是解释程序?读入一个可执行的程序并产生执行该程序的结果的一种程序。编译和解释的例子编译和解释的例子lCistypicallycompiledlSchemeistypicallyinterpretedlJavaiscompiledtobytecodes,whicharetheninterpreted 解释程序现在学习的是第5页,共39页
4、66l编译器的结构Single Pass单遍单遍Multiple Pass多遍多遍Load&Go装入并执行装入并执行Debugging排错排错Optimizing优化优化Construction构造构造Functional功能功能现在学习的是第6页,共39页77编译程序的分析与综合l编译程序的工作分为两个基本部分:Analysis:分析分析词法、语法、语义分析词法、语法、语义分析把源程序转换成中间表示把源程序转换成中间表示Synthesis:综合综合从中间表示生成目标程序从中间表示生成目标程序现在学习的是第7页,共39页8 8编译技术的应用编译技术的应用l编译并不限于程序设计语言的应用Text
5、Formatters正文格式化程序lLATEX&TROFFAreLanguagesWhoseCommandsFormatTextSiliconCompilers硅片编译程序lTextual/Graphical:TakeInputandGenerateCircuitDesignDatabaseQueryProcessors数据库查询处理程序DatabaseQueryLanguagesAreAlsoaProgrammingLanguagelInputiscompiledIntoaSetofOperationsforAccessingtheDatabase现在学习的是第8页,共39页9编译程序的环境
6、l为了建立一个可执行的程序,除了编译程序本身之外还需要其他一些程序,它们构成编译程序正常工作的环境,如下图所示。现在学习的是第9页,共39页1010Source ProgramPre-Processor1Compiler2Assembler3RelocatableMachine Code4Loader Link/Editor5ExecutableLibrary,relocatable object files现在学习的是第10页,共39页111.2 源程序的分析l源程序的分析过程由如下过程组成:词法分析(线性分析过程)从左到右扫描构成源程序的字符流,并分组成有独立含义的token或单词语法分析
7、(分层结构分析过程)将token或单词组合成一种嵌套的层次结构语义分析执行各种检查以确保程序的各部分有意义。现在学习的是第11页,共39页1212 编译器的结构框图编译器的结构框图 源程序源程序词法分析词法分析1语法分析语法分析2语义分析语义分析3中间代码生成中间代码生成4代码优化代码优化5目标代码生成目标代码生成6 目标程序目标程序符号表管理符号表管理出错处理出错处理1,2,3:分析阶段分析阶段4,5,6:综合阶段综合阶段现在学习的是第12页,共39页1313Phase 1.词法分析词法分析字符流转变为单词流字符流转变为单词流For Example:字符流字符流 All are tokens
8、空格空格,换行符等换行符等.被过滤被过滤Position :=initial +rate *60;_现在学习的是第13页,共39页1414Phase 2.语法分析关于上页例子的分析树关于上页例子的分析树(Parse Tree):identifieridentifierexpressionidentifierexpressionnumberexpressionexpressionexpressionassignment statementposition:=+*60initialrate树的结点是利用该语言的树的结点是利用该语言的文法文法来建造的来建造的现在学习的是第14页,共39页1515l文
9、法是规则的集合,它们支配了Tokens中的相互依赖和结构statement是是assignment statement,or while statement,or if statement,or.assignment statementexpressionis anis anidentifier:=expression;(expression),or expression+expression,or expression*expression,or number,or identifier,or.现在学习的是第15页,共39页1616l词法分析线性的非递归的仅识别各个“单词”,它们是该语言的T
10、okensl语法分析-为了识别表达式的构造需要递归,正如在分析树中所见的一般是递归的l语义分析决定该句子是否有且仅有一种无二义的解释现在学习的是第16页,共39页1717Phase 3.语义分析l找复杂的语义错误和支持代码生成l分析树根据语义动作进行扩展positioninitialrate:=+*60Compressed Treepositioninitialrate:=+*inttoreal60Conversion Action现在学习的是第17页,共39页1818l类型检查:TypeChecking类型检查-LegalityofOperandslManyDifferentSituatio
11、ns:Real:=int+char;Aint:=Areal+int;while char int do.Etc.现在学习的是第18页,共39页191.3编译程序的阶段l整个编译过程从逻辑上来说可以划分为各自独立的若干阶段,一个阶段的输出成为下一个阶段的输入。l形式上构成管道和滤波器结构。l但在实现时,为了提高编译效率通常采用语法制导的方法。整个编译过程以语法分析为中心,整合词法分析、语义分析和中间代码生成成为一个高效、有机连接的整体。现在学习的是第19页,共39页2020程序分析中提供的支持程序分析中提供的支持lSymbolTableCreation/Maintenance符号表建立/维护Co
12、ntainsInfo(storage,type,scope,args)onEach“Meaningful”Token,TypicallyIdentifiersDataStructureCreated/InitializedDuringLexicalAnalysisUtilized/UpdatedDuringLaterAnalysis&SynthesislErrorHandling出错处理DetectionofDifferentErrorsWhichCorrespondtoAllPhasesWhatKindsofErrorsAreFoundDuringtheAnalysisPhase?WhatH
13、appensWhenanErrorIsFound?现在学习的是第20页,共39页21符号表管理l记录源程序中使用的名字l收集每个名字的各种属性信息类型、作用域、分配存储信息名名 字字 种种 类类类类 型型层层 次次偏移量偏移量m过程0a变量real1db变量real1d+4c变量real1d+8现在学习的是第21页,共39页22符号表(symbol table)l符号表是一个数据结构,它使得标识符与相关的属性结合在一起。l标识符的类型信息是在程序声明中被获取的.现在学习的是第22页,共39页23出错处理l编译程序在各个阶段应诊断和报告源程序中的错误,包括词法错误,语法错误,语义错误。l编译程序
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 优秀 PPT
限制150内