- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机编译原理课件
主讲教师:郑虹 zhenghong@mail.ccut.edu.cn 学习本课程的目的和任务 高级语言的支撑基础 计算机系统中重要的系统软件之一 加深对程序设计语言的理解,提升自身的能力 掌握编译程序的基本结构,掌握常用的编译技术和方法 将编译原理的理论和方法应用于一般的软件设计中 课程内容 文法与语言的形式定义 词法分析技术 语法分析技术 语义分析技术 代码生成技术 优化 第一章 编译概述 什么是编译程序 编译过程概述 编译程序的结构 编译阶段的组合 与编译相关的其他程序 程序设计语言 人与计算机联系的工具 发展情况 翻译程序与编译程序( compiler ) 定义:所谓翻译程序,是指这样一个程序,它能将源语言程序翻译成逻辑等价的目标语言程序。 源语言——高级程序设计语言 目标语言——低级语言(汇编语言,机器语言) 编译到被执行的过程 编译到被执行的过程 解释程序( interpreter ) “编译-解释执行”系统 编译过程和编译程序的结构 所谓编译过程是指将高级语言程序翻译为等价的目标程序的过程。 编译过程和编译程序的结构 词法分析:必要 语法分析:必要 语义分析:必要 中间代码生成:可选 优化:可选 目标代码生成:必要 词法分析( lexical analysis or scanning ) 依据:词法规则 任务:将字符串识别为单词符号串;编码输出。 对应程序称为词法分析器,或扫描器(scanner)。 单词符号:最小的语义单位,包括:基本字(保留字或关键字),标识符,常数,算符,界符等等。 例: y = x + r * 6 语法分析( syntax analysis or parsing ) 依据:语法规则 任务: 把单词符号分解为各类语法单位,以确定输入串语法是否正确。 对应程序称为语法分析器(parser)。 语法单位:语法成分或语法范畴。如:表达式,子句,句子,程序段,程序等。 语义分析与中间代码生成(semantic analysis and intermediate code generation) 依据:语义规则 任务:进行静态语义检查,保证标识符和常数的正确使用。对各类语法单位进行初步翻译,生成中间代码。 中间代码:一种结构简单、含义明确的记号系统,有三个要求:与计算机指令系统接近;到机器语言变换容易;便于优化处理。 中间代码形式:三元式、四元式、逆波兰式等。 例如表达式 (a+b)*(c+d) 翻译成四元的中间代码如下: (+ , a , b , t1) (+ , c , d , t2) (* , t1 , t2 , t3) 优化( code optimization ) 依据:等价变换原则 任务:将中间代码进行等价变换,以期生成更高效的目标代码。 目标代码生成 任务:把中间代码转换为等价的目标代码。 目标代码的形式: 绝对指令代码 汇编指令代码 可重定位的指令代码 编译程序的结构 符号表( symbol table )管理 记录源程序中使用的名字 收集每个名字的各种属性信息 类型、作用域、分配存储信息 出错处理( error handling ) 诊察错误,并能报告用户错误性质和位置 出错处理能力的优劣是衡量编译程序质量好坏的一个重要指标。 编译程序的组织 遍 对源程序(包括源程序中间形式)从头到尾扫描一次,并做有关的加工处理 ,生成新的源程序中间形式或目标程序,通常称之为一遍。 编译的前端与后端 前端:与源语言有关 后端:与目标机器有关 划分前端与后端的优点:便于移植和编译程序的构造 与编译相关的其他程序 预处理器 宏处理、条件编译 汇编程序 连接加载程序(linker and loader) 小结 翻译程序与编译程序的概念 两种翻译方式 编译的过程及编译程序的结构 分遍组织方式 * 编译原理 长春工业大学计算机科学与工程学院 易读,易写,易改,易移植 独立于机器,面向过程 接近自然语言 高级语言 较难读/写,较难修改 面向机器,通用性差 符号化的机器语言 汇编语言 难读,难写,难修改 面向机器,通用性差 二进制代码 机器语言 源程序 source program 编译程序 目标程序 object or target program (*.C / *.PAS) (*.OBJ) 1、编译程序的目标程序是机器语言 高级语言源程序 编译程序 机器语言目
文档评论(0)