- 1、本文档共83页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[2018年最新整理]A2013-9-CH01--编译概述
第1章 编译概述 知识点:翻译、编译、解释的概念 编译的阶段、任务、及典型结构 编译程序的伙伴工具 编译概述 简介 1.1 翻译和解释 1.2 编译的阶段和任务 1.3 编译有关的其他概念 1.4 编译程序的伙伴工具 1.5 编译原理的应用 小结 简介 什么是编译? 把源程序转换成等价的目标程序的过程即是编译。 编译程序的设计涉及到的知识: 程序设计语言 形式语言与自动机理论 计算机体系结构 数据结构 算法分析与设计 操作系统 软件工程等 1.1 翻译和解释 一、程序设计语言 二、翻译程序 一、程序设计语言 低级语言 机器语言 符号语言 汇编语言 高级语言 过程性语言—面向用户的语言 如:C、Pascal 专用语言—面向问题的语言 如:SQL 面向对象的语言 如:Java、C++ 高级语言的优点 高级语言独立于机器。所编程序移植性比较好。 不必考虑存储单元的分配问题、数据的外部形式转换成机器的内部形式等细节。 用变量描述存储单元 具有丰富的数据结构和控制结构。 数据结构:数组、记录等 控制结构:循环、分支、过程调用等。 更接近于自然语言。 可读性好,便于维护。 编程效率高。 翻译程序扫描所输入的源程序,并将其转换为目标程序,或将源程序直接翻译成结果。 编译程序 源程序是用高级语言或汇编语言编写的,目标程序是用目标语言表示的。 编译和执行阶段 编译时间:实现源程序到目标程序的转换所占用的时间。 源程序和数据是在不同时间(即分别在编译阶段和运行阶段)进行处理的。 解释程序 解释程序解释执行源程序,不生成目标程序。 同时处理源程序和数据。 total:=total+rate*4 的解释过程 解释程序先将源程序转换成一棵树 另一种有效的方法:先将源程序转换为某种中间形式,然后对中间形式的程序解释执行。例如: JAVA语言 1.2 编译的阶段和任务 一、分析阶段 根据源语言的定义,分析源程序的结构 1.词法分析 2.语法分析 3.语义分析 二、综合阶段 根据分析结果构造出所要求的目标程序 4.中间代码生成 5.代码优化 6.目标代码生成 三、符号表的管理 四、错误诊断和处理 编译程序的典型结构 一、分析阶段 任务:根据源语言的定义,对源程序进行结构分析和语义分析,从而把源程序正文转换为某种内部表示。 分析阶段是对源程序结构的静态分析。 任务划分: 1.词法分析 2.语法分析 3.语义分析 1. 词法分析 扫描,线性分析 词法分析器: 依次读入源程序中的每个字符,对构成源程序的字符串进行分解,识别出每个具有独立意义的字符串作为记号(token)并组织成记号流。 把需要存放的单词放到符号表中,如变量名,标号,常量等。 形成记号的字符串叫做该记号的单词(lexeme)。 工作依据:源语言的构词规则(即词法),也称为模式(pattern)。 标识符的模式是:以字母开头的字母数字序列。 词法分析器从左到右扫描组成源程序的字符串,并将其转换成单词(记号—token)串;同时要:查词法错误,进行标识符登记——符号表管理。 输入:字符串 输出:(种别码,属性值)——序对 属性值——token的机内表示 对 total:=total+rate*4 的词法分析 (1) 标识符 total (内部名字为id1) (2) 赋值号 := (3) 标识符 total (内部名字为id1) (4) 加号 + (5) 标识符 rate (内部名字为id2) (6) 乘号 * (7) 整常数 4 空格、注释的处理及其他 分隔记号的空格:被删去 源程序中的注释:被跳过 识别出来的标识符要放入符号表。 对某些记号还要增加一个“属性值” 如发现标识符total时,词法分析器不仅产生一个记号如id,还把它的单词total填入符号表(如果total在表中不存在的话),记号id的属性值就是指向符号表中R条目的指针。 2. 语法分析 层次结构的分析 把记号流按语言的语法结构层次地分组,以形成语法短语或语法单位。 源程序的语法短语常用分析树表示。 工作依据:源语言的语法规则。 输入:token序列 输出:语法成分 程序的层次结构通常由递归的规则表示, 【例如】表达式的定义规则如下: (1) 任何一个标识符是一个表达式 (2) 任何一个数是一个表达式 如果expr1和expr2是表达式,expr1+expr2、expr1*expr2、(expr1)也都是表达式。 【例如】使用如下规则递归地定义语句: (1) 如果id是一个标识符,expr是一个表达式,则 id:= expr是一个语句。 (2) 如果expr是一个表达式,stm
您可能关注的文档
- [2018年最新整理]7年级下地理知识竞赛.ppt
- [2018年最新整理]7年高考5年模拟单项填空-情态动词和虚拟语气.doc
- [2018年最新整理]7弹塑性有限元.ppt
- [2018年最新整理]7微积分的创立.doc
- [2018年最新整理]7拉格朗日插值.ppt
- [2018年最新整理]7放射科急危重症应急预案及流程.doc
- [2018年最新整理]7挡土结构物上的土压力.doc
- [2018年最新整理]7房屋建筑施工图概述.ppt
- [2018年最新整理]7数的产生和十进制计数法.ppt
- [2018年最新整理]7数量积与向量积.ppt
- [2018年最新整理]A33、A55参数特点.pptx
- [2018年最新整理]A6地块地铁连通口安装工程施工方案.doc
- [2018年最新整理]a7工业腐蚀与预防措施(化工安全工程概论).ppt
- [2018年最新整理]A7报验申请表.doc
- [2018年最新整理]A4万能平板打印机使用手册(中文).doc
- [2018年最新整理]AAC的ADTS格式及解码算法详解.doc
- [2018年最新整理]AAC音频编解码器相关.doc
- [2018年最新整理]A8应用-表单篇.ppt
- [2018年最新整理]aatn_0417_抽样检验与可靠性试验.ppt
- [2018年最新整理]aaf_0617_品管圈基础知识.ppt
最近下载
- 2024年党章党规党纪应知应会知识阶段测试题库附答案.docx VIP
- 提高对患者跌倒坠床防范措施落实率PDCA.pptx VIP
- 三矿--2025年安全生产治本攻坚三年行动任务分解及完成情况表(2.25)(1).xlsx VIP
- 新编英语教程8Unit-2.ppt VIP
- 鹤煤三矿三年行动月报表(2.25).xls VIP
- 鹤煤三矿治本攻坚三年行动中期评估表6.9(1).doc VIP
- 人教版七年级上册《What’s this in English》教学设计.docx VIP
- 道德与法治三年级上册第三单元 安全护我成长 大单元整体学历案教案 教学设计附作业设计(基于新课标教学评一致性).docx VIP
- 防撞护栏墩专项施工方案.docx VIP
- 精神病患者分析研判报告.docx VIP
文档评论(0)