- 1、本文档共47页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 计科系 郑瑶 zy_inf@shzu.edu.cn 为什么要学编译? 懂得编译有助于深刻理解和正确使用程序设计语言 加深对整个计算机系统的理解 学习其软件设计开发思想 处理器性能在很大程度上取决于编译器的质量 分类 软件 系统软件 语言处理系统 软件:计算机系统中的程序及其文档 系统软件:居于计算机系统中最靠近硬件的一层,其他软件一般都通过系统软件发挥作用。他和具体的应用领域无关,如编译系统和操作系统等。 语言处理系统:把软件语言书写的各种程序处理成可在计算机上执行的程序。 软件语言:用于书写软件的语言。它主要包括需求定义语言,功能性语言,设计性语言,程序设计语言以及文档语言。 功能 有关术语 词法分析(lexical analysis or scanning) --The stream of characters making up a source program is read from left to right and grouped into tokens,which are sequences of characters that have a collective meaning. 单词---token 保留字---reserved word 标识符 ---identifier(user-defined name) 有关术语 语法分析(syntax analysis or parsing) The purpose of syntax analysis is to determine the source program’s phrase structure.This process is also called parsing.The source program is parsed to check whether it conforms to the source language’s syntax,and to construct a suitable representation of its phrase structure. 语法树(推导树)(parse tree or derivation tree) 2.符号表管理 记录源程序中使用的名字 收集每个名字的各种属性信息 类型、作用域、分配存储信息 3.出错处理 检查错误、报告出错信息、排错、恢复编译工作 编译程序的生成 编译程序生成方式有如下六种:直接用机器语言编写编译程序用汇编语言编写编译程序高级语言编写编译工具移植 自编译 1.编译程序总框 表 格 管 理 词法分析 语法分析 语义分析和中间代码生成 代码优化 目标代码生成 源程序 单词符号 中间代码 语法单位 目标代码 中间代码 出 错 处 理 2.表格与表格管理 编译各阶段均须维持表格并进行表格管理 建表的技术支持是数据结构 表格的分类、结构、处理方法决定于语言及机器,还有优化措施 2.表格与表格管理 编译程序涉及的表格有: 符号名表 常量名、变量名、数组名、过程名、 性质、 引用、定义 常数表 标号表 入口名表 过程引用表 各种类型常数的值 标号的定义和引用情况 过程的入口名和入口位置 外部过程的名字、引用位置 循环表 等价名表 公用链表 格式表 中间代码表 Const1 常量 值:35 Var1 变量 类型:实 层次:2 3.出错处理 一个好的编译程序应该: 全 最大限度发现错误 准 准确指出错误的性质和发生地点 局部化 将错误的影响限制在尽可能小的范围内 若能自动校正错误则更好,但其代价非常高 3.出错处理 源程序中的错误通常分为 : 语法错误 不符合语法(或词法)规则的错误 语义错误 不符合语义规则的错误 单词拼写错误、括号不匹配 ... 说明错误、作用域错误、类型不匹配 ... 4.遍 遍 是对源程序或源程序的中间结果从头到尾扫描一次,并作有关的加工处理,生成新的中间结果或目标程序。 词法分析 语法分析 中间代码生成 代码优化 目标代码生成 一遍 语法分析器 处于核心地位 一遍 局部优化 一遍 一遍 全局优化 5.编译前端与后端 词法分析 语法分析 中间代码生成 代码优化 目标代码生成 编译前端主要由与源语言有关 但与目标机无关的那些部分组成 编译后端包括编译程序中 与目标机有关的那些部分 以往编译程序的构造大多采用机器语言或汇编语言 现在编译程序的构造越来越多采用高级语言 1.编译程序的构造工具 有时为了充分发挥效率或满足不同需求,仍然采用 机器语言或汇编语言构造编译程序(或其核心部分) 2. T型图 S I T S表示源语言 T表示目标语言 I表示编
您可能关注的文档
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第六章 房地产开发项目规划设计及其评价.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第七章 房地产开发工程招标与投标.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第三章 房地产开发用地的取得.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第十二章 物业管理.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第十三章 房地产开发项目策划.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第十一章 房地产销售.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第十章 房地产开发项目市场推广.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第四章 城市房屋拆迁.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第五章 房地产开发项目资金的筹集.ppt
- 石河子大学水利建筑工程学院房地产开发与投资分析课件第一章 房地产开发导论.ppt
最近下载
- 小学1-6年级必背古诗词115首(A4打印版).pdf
- 校对符号及其用法.doc VIP
- 大气污染控制工程课程设计.docx VIP
- 2022小学学生寒假体育家庭作业清单方案(详细版).pdf
- 一年级100以内加减法混合练习题(A4打印).pdf VIP
- 2024年四大名著三国演义知识竞赛题库及答案(共100题).pdf
- 2024年邵阳职业技术学院单招职业技能测试题库及答案(典优).docx VIP
- 广告标识牌采购投标方案(技术标360页).docx
- CNAS-SC170:2024 信息安全管理体系认证机构认可方案.docx VIP
- GB50156-2012(2014年版) 汽车加油加气站设计与施工规范.pdf
文档评论(0)