北京化工大学信息科学与技术学院计算机系_第1页
北京化工大学信息科学与技术学院计算机系_第2页
北京化工大学信息科学与技术学院计算机系_第3页
北京化工大学信息科学与技术学院计算机系_第4页
北京化工大学信息科学与技术学院计算机系_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章编译简介2.1

编译器

2.2

编译器的构造

2.3

编译器的实例

2.4

与编译相关的数据构造

2.5

编译器各阶段的分组

2.6

编译器的构造工具

1/6/20241北京化工大学信息科学与技术学院计算机系2.1编译简介●程序设计言语程序设计言语低级言语:面向机器的言语机器言语汇编言语过程式言语Fortran,Pascal,C…函数式言语Lisp…逻辑式言语Prolog…对象式言语C++…高级言语CompilerSourceProgramTargetProgram1/6/20242北京化工大学信息科学与技术学院计算机系0011010010101010…0100101110110100目的模块0011010010101010……0100101110110100#include<iostream.h>intmain(void){inta;…;cin>>…;…;return0;}源程序TextEditor文本编辑器Linker链接器Compiler编译Preprocessor预处置程序Translator翻译程序系统库●BuildingaProgram构建程序1/6/20243北京化工大学信息科学与技术学院计算机系根底程序Interpreters解释程序Assemblers汇编程序Linkers衔接程序Loaders装入程序Preprocessors预处置程序●编译相关程序IDE程序Editors编辑器Debuggers调试器Profilers描画器Projectmanagers工程管理器1/6/20244北京化工大学信息科学与技术学院计算机系目的程序源程序编译程序初始数据计算结果功能工作结果实现技术上编译程序源程序的一个转换系统源程序的目标代码把中间代码转换成目标程序解释程序源程序的一个执行系统源程序的执行结果执行中间代码源程序解释程序初始数据计算结果●编译和解释程序1/6/20245北京化工大学信息科学与技术学院计算机系翻译外文资料编译源程序分析阅读原文识别单词句子结构句子释义输入并扫描源程序词法分析语法分析语义分析综合修辞加工写出译文代码优化目标代码生成2.2编译器的构造翻译外文资料与编译源程序进展类比1/6/20246北京化工大学信息科学与技术学院计算机系词法分析源程序目标程序语法分析语义分析文字表、符号表处置错误处置中间代码优化中间代码生成前端后端●Thephaseofacompiler编译程序的构造●Thephaseofacompiler编译程序的构造目标代码生成1/6/20247北京化工大学信息科学与技术学院计算机系词法分析:Input:astreamofcharacters,Output:a,[,index,],=,4,+,2(Tokens)语法分析:Input:theformsoftokensOutput:aparsetreeorasyntaxtree例:a[index]=4+22.3编译器的实例1/6/20248北京化工大学信息科学与技术学院计算机系expressionAssign-expressionexpression=expressionSubscript-expressionAdditive-expressiveexpression[expression]expressionexpressionIdentifieraIdentifierindexNumber4Number2+Assign-expressionSubscript-expressionAdditive-expressiveIdentifieraIdentifierindexNumber4Number2●分析树parsetree●语法树syntaxtree1/6/20249北京化工大学信息科学与技术学院计算机系●语义分析Assign-expressionSubscript-expressionintegerAdditive-expressiveintegerIdentifieraArrayofintegerIdentifierindexintegerNumber4integerNumber2integer●源代码优化Assign-expressionSubscript-expressionintegerIdentifieraArrayofintegerIdentifierindexintegerNumber6integer1/6/202410北京化工大学信息科学与技术学院计算机系●代码生成●目的代码优化MOVR0,indexMULR0,2MOVR1,&aADDR1,R0MOV*R1,6MOVR0,indexSHLR0MOV&a[R0],6Input:intermediatecodeorIROutput:machinecode,codeforthetargetmachine1/6/202411北京化工大学信息科学与技术学院计算机系2.4与编译相关的数据构造●枚举类型:记号(tokens)种类、语法单位等的命名;●构造体:分析树(parsertree)、语法树(syntaxtree)的结点,符号表(symboltable)等;●树型构造:分析树、语法树、注释树等;●线性表、哈希表:符号表、常数表(literaltable);●文件:输入、输出、暂时文件(temporaryfiles)。1/6/202412北京化工大学信息科学与技术学院计算机系编译程序的前端:与源言语有关,而与目的机无关的编译程序编译程序的后端:与目的机有关,而与源言语无关的编译程序遍〔趟〕:是对源程序或源程序的中间结果从头到尾扫描一遍,并作有关加工处置,生成新的中间结果或目的程序。宿主机:运转编译程序的计算机称为宿主机。目的机:运转编译程序所产生的目的代码的计算机成为目的机。2.5编译器各阶段的分组1/6/202413北京化工大学信息科学与技术学院计算机系要求:程序设计言语实现编译程序的开发2.6编译程序的构造工具预处置法移植法自展法工具法实际法开发编译程序的途径●编译程序的构造工具分析器生成器扫描器生成器语法制导翻译引擎自动代码生成器数据流引擎源言语目的言语编译方法●设计和实现编译程序,必需知晓Pascal编译程序C编译程序Fortran编译程序●经典的编译程序1/6/202414北京化工大学信息科学与技术学院计算机系第2章编译简介2.1

编译器

2.2

编译器的构造

2.3

编译器的实例

2.4

与编译相关的数据构造

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论