编译原理课件汇总.ppt
- 文档编号:2122792
- 上传时间:2022-10-27
- 格式:PPT
- 页数:430
- 大小:8.86MB
编译原理课件汇总.ppt
《编译原理课件汇总.ppt》由会员分享,可在线阅读,更多相关《编译原理课件汇总.ppt(430页珍藏版)》请在冰豆网上搜索。
编译原理编译原理主讲:
闫健恩主讲:
闫健恩EmailEmail:
yanjianen()yanjianen()写在课程之前n木桶原理木桶原理:
一个木桶由许多块木板组成,如果组成木桶的这些木板长短不一,那么这个木桶的最大容量不取决于长的木板,而取决于最短的那块木板。
n蝴蝶效应:
蝴蝶效应:
1963年12月,洛伦兹(Lorenz)在华盛顿的美国科学促进会的一次讲演中提出:
一只蝴蝶在巴西扇动翅膀,有可能会在美国的德克萨斯引起一场龙卷风。
他的演讲和结论给人们留下了极其深刻的印象。
n马太效应:
马太效应:
“马太福音”第二十五章由这么几句话:
“凡有的,还要加给他叫他多余;没有的,连他所有的也要夺过来。
”。
1968年,美国科学史研究者罗伯特莫顿(RobertK.Merton)提出这个术语用以概括一种社会心理现象:
“相对于那些不知名的研究者,声名显赫的科学家通常得到更多的声望即使他们的成就是相似的,同样地,在同一个项目上,声誉通常给予那些已经出名的研究者,例如,一个奖项几乎总是授予最资深的研究者,即使所有工作都是一个研究生完成的。
”学时与参考教材学时与参考教材n学时:
学时:
444+164+16学时学时n参考教材:
参考教材:
n11、AlfredAhoect.AlfredAhoect.编译原理,赵建华等译,机械工编译原理,赵建华等译,机械工业出版社,业出版社,2002009.10.9.10.n22、KennethC.LoudenKennethC.Louden,编译原理及实践,冯博琴等编译原理及实践,冯博琴等译,机械工业译,机械工业出版社,出版社,2001.2.2001.2.n33、金成植,编译程序构造原理和实现技术,高等教育、金成植,编译程序构造原理和实现技术,高等教育出版社,出版社,2000.7.2000.7.n44、陈火旺等,程序设计语言编译原理,国防工业出版、陈火旺等,程序设计语言编译原理,国防工业出版社,社,2003.8.2003.8.印刷印刷学时与参考教材学时与参考教材n55、何炎祥等,编译原理,华中理工大学出、何炎祥等,编译原理,华中理工大学出版社,版社,2000.10.2000.10.n66、蒋立源,编译原理、蒋立源,编译原理,西北工业大学出版,西北工业大学出版社,社,2000.7.2000.7.n77、肖军模,程序设计语言编译方法、肖军模,程序设计语言编译方法,大连,大连理工大学出版社,理工大学出版社,2000.82000.8n88、蒋宗礼等,、蒋宗礼等,形式语言与自动机理论形式语言与自动机理论,清,清华大学出版社,华大学出版社,2003.1.2003.1.主要内容主要内容q编译系统及其设计概述编译系统及其设计概述(总体结构、设计方法总体结构、设计方法)q语言与文法语言与文法(文法、推导、归约、分类、分析树文法、推导、归约、分类、分析树)q词法分析词法分析(词法分析、正规式与正规文法、词法分析、正规式与正规文法、DFADFA的状态转移图的状态转移图)q语法分析语法分析(自顶向下:
自顶向下:
LL
(1)LL
(1)、递归子程序;自底向上:
递归子程序;自底向上:
LRLR)q语义分析语义分析(属性文法、各种语句的语法制导翻译属性文法、各种语句的语法制导翻译)q运行环境运行环境(存储分配、过程调用、符号表管理存储分配、过程调用、符号表管理)q代码优化代码优化(基本块的优化、循环优化等基本块的优化、循环优化等)q代码生成代码生成(目标机器模型、基本块和流图、寄存器分配、基本块的目标机器模型、基本块和流图、寄存器分配、基本块的DAG表示、从表示、从DAG生成目标代码生成目标代码)教学目的教学目的编译原理是一门非常好的课程编译原理是一门非常好的课程nAlfredV.AhoAlfredV.Aho:
编写编译器的原理和技术具有十编写编译器的原理和技术具有十分普遍的意义,以至于在每个计算机科学家的研分普遍的意义,以至于在每个计算机科学家的研究生涯中,本书中的原理和技术都会反复用到究生涯中,本书中的原理和技术都会反复用到n涉及的是一个比较适当的抽象层面上的数据变换涉及的是一个比较适当的抽象层面上的数据变换(既抽象,又实际)(既抽象,又实际)n一些具体的表示和变换算法一些具体的表示和变换算法n“自顶向下的方法自顶向下的方法”和和“自底向上的方法自底向上的方法”系统系统设计方法(思想、方法、实现全方位讨论)设计方法(思想、方法、实现全方位讨论)n一个相当规模的系统的设计(含总体结构)一个相当规模的系统的设计(含总体结构)n计算机专业最为恰当、有效的知识载体之一计算机专业最为恰当、有效的知识载体之一教学要求教学要求n掌握编译程序掌握编译程序总体结构总体结构n在在系统级系统级上认识算法、系统的设计上认识算法、系统的设计n具有把握系统的能力具有把握系统的能力n学习有关的原理、实现方法和技术,了解计算学学习有关的原理、实现方法和技术,了解计算学科的基本方法、思想科的基本方法、思想n掌握典型方法。
掌握典型方法。
“在每一个计算机科技工作者的职业在每一个计算机科技工作者的职业生涯中,这些原理和技术都被反复用到。
生涯中,这些原理和技术都被反复用到。
”n兼顾语言的描述方法、设计、应用兼顾语言的描述方法、设计、应用形式化形式化n能形式化就能自动化能形式化就能自动化n进一步培养进一步培养“计算机思维能力计算机思维能力”n软件系统的非物理性质软件系统的非物理性质学习成果学习成果_以学生为中心以学生为中心n理解和掌握编译过程各个阶段的工作原理理解和掌握编译过程各个阶段的工作原理n理解标准编译器各个组成部分的任务理解标准编译器各个组成部分的任务n熟悉编译过程各阶段所要解决的问题及其采用熟悉编译过程各阶段所要解决的问题及其采用的方法和技术的方法和技术n应用一些标准的技术解决编译器构造过程中所应用一些标准的技术解决编译器构造过程中所产生的相关问题产生的相关问题n理解编译器在生成代码时如何充分利用特定处理解编译器在生成代码时如何充分利用特定处理器的特征理器的特征第第11章章引论引论n1.11.1计算机语言的发展计算机语言的发展n1.21.2翻译系统翻译系统n1.31.3编译系统的功能分析编译系统的功能分析n1.41.4编译程序总体结构编译程序总体结构n1.51.5编译程序的生成编译程序的生成n1.61.6编译技术的应用编译技术的应用1.1计算机语言的发展计算机语言的发展n机器语言机器语言(MachineLanguage)MachineLanguage)与汇编语言与汇编语言(AssembleLanguage)AssembleLanguage)n00、11代码与助记符:
更接近于计算机硬件指令系统的代码与助记符:
更接近于计算机硬件指令系统的工作工作n高级语言高级语言(HighLevelLanguage)HighLevelLanguage)n其表示方法更接近于待解问题的表示方法其表示方法更接近于待解问题的表示方法n定义数据、描述运算、控制流程、传输数据定义数据、描述运算、控制流程、传输数据n如:
如:
CC、FORTRANFORTRAN、PASCALPASCAL、C+C+、JAVAJAVA、SQL(SQL(数据定义、数据数据定义、数据操作操作)n命令语言命令语言(CommandLanguage)CommandLanguage)n控制系统的工作控制系统的工作以功能封装为特征以功能封装为特征n如如UNIXUNIX上的上的shellshell1.21.2翻译系统翻译系统n翻译程序翻译程序(Translator)Translator)将某一种语言描述的程序将某一种语言描述的程序(源程序源程序SourceSourceProgram)Program)翻译成等价的另一种语言描述的程翻译成等价的另一种语言描述的程序序(目标程序目标程序ObjectProgram)ObjectProgram)的程序。
的程序。
翻译程序翻译程序源程序源程序目标程序目标程序(*.C/*.PAS)(*.OBJ/*.EXE)1.21.2翻译系统翻译系统n解释程序解释程序(Interpreter)Interpreter)n口译与笔译(单句提交与整篇提交)口译与笔译(单句提交与整篇提交)源程序源程序输入数据输入数据计算结果计算结果解解释程序程序1.21.2翻译系统翻译系统n编译程序编译程序(Compiler)Compiler)n高级语言程序高级语言程序汇编汇编/机器语言程序机器语言程序源程序源程序目标程序目标程序编译程序程序1.21.2编译系统编译系统SPCompilerS-SourceO-ObjectOPP-ProgramInputRSRS-RunSys.Outputnn编译编译系系系系统统(CompilingSystem)CompilingSystem)CompilingSystem)CompilingSystem)uu编译编译系系系系统统=编译编译程序程序程序程序+运行系运行系运行系运行系统统支撑支撑支撑支撑环环境、境、境、境、运行运行运行运行库库等等等等1.21.2翻译系统翻译系统n其它:
其它:
n诊断编译程序(诊断编译程序(DiagnosticCompiler)DiagnosticCompiler)n优化编译程序(优化编译程序(OptimizingCompiler)OptimizingCompiler)n交叉编译程序(交叉编译程序(CrossCompiler)CrossCompiler)n可变目标编译程序(可变目标编译程序(RetargetableCompiler)RetargetableCompiler)n并行编译程序(并行编译程序(ParallelizingCompilerParallelizingCompiler)n汇编程序汇编程序(Assembler)Assembler)、交叉汇编程序交叉汇编程序(CrossCrossAssembler)Assembler)、反汇编程序(反汇编程序(Disassembler)Disassembler)1.21.2翻译系统翻译系统汇总汇总MLMLPAssemblerDisassemblerALALPTranslatorCompilerDataHLHLPInterpreterResultM-MachineL-LangugeP-ProgramA-AssembleH-HighLevel1.31.3编译系统的功能分析编译系统的功能分析n程序分析程序分析n词法、语法、语义词法、语法、语义n分析综合分析综合n语句的翻译、代码生成语句的翻译、代码生成n标识符处理:
左值与右值的绑定标识符处理:
左值与右值的绑定(binding)binding)n变量:
变量:
存储单元存储单元n函数:
函数:
目标代码序列目标代码序列1.41.4编译程序总体结构编译程序总体结构目目目目标标代代代代码码生成器生成器生成器生成器代代代代码优码优化器化器化器化器语义语义分析与中分析与中分析与中分析与中间间代代代代码码生成器生成器生成器生成器语语法分析器法分析器法分析器法分析器表表表表格格格格管管管管理理理理出出出出错错错错处处处处理理理理中中中中间间代代代代码码中中中中间间代代代代码码目目目目标标代代代代码码语语法法法法单单位位位位单词单词符号符号符号符号词词法分析器法分析器法分析器法分析器源程序源程序源程序源程序1.1.词法分析词法分析n例:
例:
main()main()printf(printf(“hellohello”);结果结果IDNmain()IDNprintf(STRhello);11、词法分析、词法分析n词法分析由词法分析器完成词法分析由词法分析器完成(LexicalAnalyzer)LexicalAnalyzer),词法分词法分析器又叫做扫描器析器又叫做扫描器(Scanner)Scanner)n词法分析器从左到右扫描源程序词法分析器从左到右扫
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 课件 汇总