收藏 分销(赏)

北京化工大学信息科学与技术学院计算机系.pptx

上传人:二*** 文档编号:5455748 上传时间:2024-11-06 格式:PPTX 页数:18 大小:287KB 下载积分:5 金币
下载 相关 举报
北京化工大学信息科学与技术学院计算机系.pptx_第1页
第1页 / 共18页
本文档共18页,全文阅读请下载到手机保存,查看更方便
资源描述
第第 2 章章编译简介编译简介2.12.1编译器编译器编译器编译器2.22.2编译器的结构编译器的结构编译器的结构编译器的结构2.32.3编译器的实例编译器的实例编译器的实例编译器的实例2.42.4与编译相关的数据结构与编译相关的数据结构与编译相关的数据结构与编译相关的数据结构 2.52.5编译器各阶段的分组编译器各阶段的分组编译器各阶段的分组编译器各阶段的分组2.62.6编译器的构造工具编译器的构造工具编译器的构造工具编译器的构造工具11/6/20241北京化工大学信息科学与技术学院计算机系2.1编译简介编译简介程序设计语言程序设计语言程序设计语言程序设计语言程序程序程序程序设计设计设计设计语言语言语言语言低级语言:面向机器的语言低级语言:面向机器的语言低级语言:面向机器的语言低级语言:面向机器的语言机器语言机器语言机器语言机器语言汇编语言汇编语言汇编语言汇编语言过程式语言过程式语言过程式语言过程式语言Fortran,Pascal,CFortran,Pascal,C函数式语言函数式语言函数式语言函数式语言LispLisp逻辑式语言逻辑式语言逻辑式语言逻辑式语言PrologProlog对象式语言对象式语言对象式语言对象式语言C+C+高级语言高级语言高级语言高级语言CompilerCompilerSourceSourceProgramProgramTargetTargetProgramProgram11/6/20242北京化工大学信息科学与技术学院计算机系00110100101010100100101110110100目标目标模块模块00110100101010100100101110110100#include#includeintmain(void)intmain(void)inta;inta;cin;cin;return0;return0;源程序源程序TextEditor文本编辑器文本编辑器Linker链接器链接器Compiler编译编译Preprocessor预处理程序预处理程序Translator翻译程序翻译程序系统库系统库Building aBuilding a ProgramProgram构建程序构建程序构建程序构建程序11/6/20243北京化工大学信息科学与技术学院计算机系基础程序基础程序基础程序基础程序InterpretersInterpreters解释程序解释程序解释程序解释程序AssemblersAssemblers汇编程序汇编程序汇编程序汇编程序LinkersLinkers连接程序连接程序连接程序连接程序LoadersLoaders装入程序装入程序装入程序装入程序PreprocessorsPreprocessors预处理程序预处理程序预处理程序预处理程序编译相关程序编译相关程序编译相关程序编译相关程序IDEIDEIDEIDE程序程序程序程序EditorsEditors编辑器编辑器编辑器编辑器DebuggersDebuggers调试器调试器调试器调试器ProfilersProfilers描述器描述器描述器描述器ProjectmanagersProjectmanagers项目管理器项目管理器项目管理器项目管理器11/6/20244北京化工大学信息科学与技术学院计算机系目目目目标标标标程程程程序序序序源源源源程程程程序序序序编编编编译译译译程程程程序序序序初始数据初始数据初始数据初始数据计计计计算算算算结结结结果果果果功能功能功能功能工作结果工作结果工作结果工作结果实现技术上实现技术上实现技术上实现技术上编译编译编译编译程序程序程序程序源程序的一个源程序的一个源程序的一个源程序的一个转换转换转换转换系统系统系统系统源程序的源程序的源程序的源程序的目标代码目标代码目标代码目标代码把中间代码转把中间代码转把中间代码转把中间代码转换成目标程序换成目标程序换成目标程序换成目标程序解释解释解释解释程序程序程序程序源程序的一个源程序的一个源程序的一个源程序的一个执行执行执行执行系统系统系统系统源程序的源程序的源程序的源程序的执行结果执行结果执行结果执行结果执行中间代码执行中间代码执行中间代码执行中间代码源源源源程程程程序序序序解解解解释释释释程程程程序序序序初始数据初始数据初始数据初始数据计计计计算算算算结结结结果果果果 编译和解释程序编译和解释程序编译和解释程序编译和解释程序11/6/20245北京化工大学信息科学与技术学院计算机系翻译外文资料翻译外文资料翻译外文资料翻译外文资料编译源程序编译源程序编译源程序编译源程序分析分析分析分析阅读原文阅读原文阅读原文阅读原文识别单词识别单词识别单词识别单词句子结构句子结构句子结构句子结构句子释义句子释义句子释义句子释义输入并扫描源程序输入并扫描源程序输入并扫描源程序输入并扫描源程序词法分析词法分析词法分析词法分析语法分析语法分析语法分析语法分析语义分析语义分析语义分析语义分析综合综合综合综合修辞加工修辞加工修辞加工修辞加工写出译文写出译文写出译文写出译文代码优化代码优化代码优化代码优化目标代码生成目标代码生成目标代码生成目标代码生成2.2编译器的结构编译器的结构翻译外文资料与编译源程序进行类比翻译外文资料与编译源程序进行类比翻译外文资料与编译源程序进行类比翻译外文资料与编译源程序进行类比11/6/20246北京化工大学信息科学与技术学院计算机系词词词词法法法法分分分分析析析析源源源源程程程程序序序序目目目目标标标标程程程程序序序序语语语语法法法法分分分分析析析析语语语语义义义义分分分分析析析析文字表、符号表文字表、符号表文字表、符号表文字表、符号表处理处理处理处理错误处理错误处理错误处理错误处理中中中中间间间间代代代代码码码码优优优优化化化化中中中中间间间间代代代代码码码码生生生生成成成成前前前前端端端端后后后后端端端端 The phase of a compiler The phase of a compiler 编译程序的结构编译程序的结构 ThephaseofacompilerThephaseofacompiler编译程序的结构编译程序的结构编译程序的结构编译程序的结构目目目目标标标标代代代代码码码码生生生生成成成成11/6/20247北京化工大学信息科学与技术学院计算机系词法分析词法分析词法分析词法分析:Input:a stream of characters,Output:a,index,=,4,+,2 (Tokens)语法分析语法分析语法分析语法分析:Input:the forms of tokensOutput:a parse tree or a syntax tree例:例:例:例:aindex=4+2aindex=4+22.3编译器的实例编译器的实例11/6/20248北京化工大学信息科学与技术学院计算机系expressionexpressionAssign-expressionAssign-expressionexpressionexpression=expressionexpressionSubscript-expressionSubscript-expressionAdditive-expressiveAdditive-expressiveexpressionexpression expressionexpression expressionexpressionexpressionexpressionIdentifieraIdentifieraIdentifierindexIdentifierindexNumber4Number4Number2Number2+Assign-expressionAssign-expressionSubscript-expressionSubscript-expressionAdditive-expressiveAdditive-expressiveIdentifieraIdentifieraIdentifierindexIdentifierindexNumber4Number4Number2Number2分析树分析树分析树分析树 parsetreeparsetree 语法树语法树syntaxtreesyntaxtree11/6/20249北京化工大学信息科学与技术学院计算机系语义分析语义分析语义分析语义分析 Assign-expressionAssign-expressionSubscript-expressionSubscript-expressionintegerintegerAdditive-expressiveAdditive-expressiveintegerintegerIdentifieraIdentifieraArrayofintegerArrayofintegerIdentifierindexIdentifierindexintegerintegerNumber4Number4integerintegerNumber2Number2integerinteger源代码优化源代码优化源代码优化源代码优化 Assign-expressionAssign-expressionSubscript-expressionSubscript-expressionintegerintegerIdentifieraIdentifieraArrayofintegerArrayofintegerIdentifierindexIdentifierindexintegerinteger Number6Number6integerinteger11/6/202410北京化工大学信息科学与技术学院计算机系代码生成代码生成代码生成代码生成 目标代码优化目标代码优化 MOVR0,indexMOVR0,indexMULR0,2MULR0,2MOVR1,&aMOVR1,&aADDR1,R0ADDR1,R0MOV*R1,6MOV*R1,6MOVR0,indexMOVR0,indexSHLR0SHLR0MOV&aR0,6MOV&aR0,6Input:intermediate code or IROutput:machine code,code for the target machine11/6/202411北京化工大学信息科学与技术学院计算机系2.4与编译相关的数据结构与编译相关的数据结构枚举类型:枚举类型:枚举类型:枚举类型:记号记号记号记号(tokens)tokens)种类、语法单位等的命名种类、语法单位等的命名种类、语法单位等的命名种类、语法单位等的命名;结构体:结构体:结构体:结构体:分析树分析树分析树分析树(parsertreeparsertree)、语法树、语法树、语法树、语法树(syntaxtreesyntaxtree)的结点,符号表的结点,符号表的结点,符号表的结点,符号表(symboltablesymboltable)等等等等;树型结构:树型结构:树型结构:树型结构:分析树、语法树、注释树等分析树、语法树、注释树等分析树、语法树、注释树等分析树、语法树、注释树等;线性表、线性表、线性表、线性表、哈希表:符号表、常数表哈希表:符号表、常数表哈希表:符号表、常数表哈希表:符号表、常数表(literaltableliteraltable););文件:文件:文件:文件:输入、输出、临时文件输入、输出、临时文件输入、输出、临时文件输入、输出、临时文件(temporaryfilestemporaryfiles)。11/6/202412北京化工大学信息科学与技术学院计算机系编译程序的编译程序的前端前端前端前端:与源语言有关,而与目标机无关的编译程序:与源语言有关,而与目标机无关的编译程序编译程序的编译程序的后端后端后端后端:与目标机有关,而与源语言无关的编译程序:与目标机有关,而与源语言无关的编译程序遍(趟)遍(趟)遍(趟)遍(趟):是对源程序或源程序的中间结果从头到尾扫描一遍,:是对源程序或源程序的中间结果从头到尾扫描一遍,并作有关加工处理,生成新的中间结果或目标程序。并作有关加工处理,生成新的中间结果或目标程序。宿主机宿主机宿主机宿主机:运行编译程序的计算机称为宿主机。:运行编译程序的计算机称为宿主机。目标机目标机目标机目标机:运行编译程序所产生的目标代码的计算机成为目标机。:运行编译程序所产生的目标代码的计算机成为目标机。2.5编译器各阶段的分组编译器各阶段的分组11/6/202413北京化工大学信息科学与技术学院计算机系要求:程序设计要求:程序设计要求:程序设计要求:程序设计语言实现编译程语言实现编译程语言实现编译程语言实现编译程序的开发序的开发序的开发序的开发2.6编译程序的构造工具编译程序的构造工具预处理法预处理法预处理法预处理法移植法移植法移植法移植法自展法自展法自展法自展法工具法工具法工具法工具法理论法理论法理论法理论法 开发编译程序的途径开发编译程序的途径开发编译程序的途径开发编译程序的途径 编译程序的编译程序的构造工具构造工具分析器生成器分析器生成器分析器生成器分析器生成器扫描器生成器扫描器生成器扫描器生成器扫描器生成器语法制导翻译引擎语法制导翻译引擎语法制导翻译引擎语法制导翻译引擎自动代码生成器自动代码生成器自动代码生成器自动代码生成器数据流引擎数据流引擎数据流引擎数据流引擎 源语言源语言源语言源语言目标语言目标语言目标语言目标语言编译方法编译方法编译方法编译方法 设计和实现编译程序,必须精通设计和实现编译程序,必须精通设计和实现编译程序,必须精通设计和实现编译程序,必须精通PascalPascal编译程序编译程序编译程序编译程序C C编译程序编译程序编译程序编译程序FortranFortran编译程序编译程序编译程序编译程序 经典的编译程序经典的编译程序经典的编译程序经典的编译程序11/6/202414北京化工大学信息科学与技术学院计算机系第第 2 章章编译简介编译简介2.12.1编译器编译器编译器编译器2.22.2编译器的结构编译器的结构编译器的结构编译器的结构2.32.3编译器的实例编译器的实例编译器的实例编译器的实例2.42.4与编译相关的数据结构与编译相关的数据结构与编译相关的数据结构与编译相关的数据结构 2.52.5编译器各阶段的分组编译器各阶段的分组编译器各阶段的分组编译器各阶段的分组2.62.6编译器的构造工具编译器的构造工具编译器的构造工具编译器的构造工具ENDEND11/6/202415北京化工大学信息科学与技术学院计算机系Thank you.BeijingUniversityofChemicalTechnologyBeijingUniversityofChemicalTechnologyBeijing,PRChinaBeijing,PRChina11/6/202416北京化工大学信息科学与技术学院计算机系演讲完毕,谢谢观看!
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服