- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理第一章04488.ppt
编译原理教材: 《编译原理》,蒋立源等编,西北工业大学出版社参考教材:《编译程序设计原理》北京大学出版社《编译原理》清华大学出版社《程序设计语言与编译》电子工业出版社 内 容 第一章 绪论 第二章 前后文无关文法和语言 第三章 词法分析与词法分析程序 第四章 语法分析与语法分析程序 第五章 语法制导翻译及中间代码生成 第六章 符号表 第七章 运行时的存贮组织与分配 第八章 代码优化 第九章 目标代码生成 第十章 查错与改错 程序设计语言: 低级语言:机器语言和汇编语言--接近机器信号 高级语言:如Basic,Pascal,C….--接近自然语言 什么是编译程序(compiler) 什么是编译程序(compiler) §1.1 编译过程概述 编译过程可以划分成以下六个阶段: 词法分析:又称扫描器,任务是输入源程序,对构成源程序的字符串进行扫描和分解,识别出一个个的单词符号。 语法分析:以词法分析输出的单词序列为输入,根据语言的语法规则,把单词符号串分解成各类语法单位,如短语、句子、序列段等。 语义分析:判定各语法成分的含义和功能,确定它们的属性或执行时应运行的运算或操作。 中间代码生成:中间代码是一种结构简单、含义明确的记号系统,是介于源语言和目标语言之间的语言代码,一般独立于具体硬件。常用逆波兰式、三元式、四元式及树型结构等。 代码优化:对中间代码进行等价变换,以期最终产生更高效(省时间、省空间)的目标代码,优化策略主要有公共子表达式提取,循环优化等等。 目标代码生成:接受中间代码(或经优化处理之后),变换为机器语言或汇编语言形式的目标程序。(目标代码主要有三种形式:绝对地址码、汇编语言、浮动地址码链接) §1.2 编译程序的逻辑结构 上节编译的六个阶段是编译程序工作的动态特征,每个阶段的工作都和“出错处理”与“表格管理”功能摸块相关。 诊断程序:在编译系统各部分插入的用于进行有关程序错误诊断和报告的程序段。 信息表格:编译程序在工作过程中需保持的一系列用以登记源程序各类信息和编译各阶段进展情况的表格。如符号名表、常数表、过程引用表。 §1.3编译程序的组织 编译程序往往把不同阶段的工作组合成遍。 1)遍:指对源程序或其内部表示从头到尾扫视一遍,并进行有关的加工处理。 2)一遍扫描:以语法分析程序为中心。 3)多遍扫描:每遍扫描产生与源程序等价的内部表示或中间代码。 多遍扫描的优点: 功能独立;结构清晰;利于优化;节省空间。 编译原理的学习意义 有助于提高编写程序的能力 有助于语法理解和掌握; 有助于程序调试和排错; 有助于形成良好的程序书写风格; … … 编译原理的学习意义 有助于相关课程学习 有助于形成专业知识整体结构; 有助于操作系统、系统结构等课程的理解; … … 编译原理的学习意义 可以应用于相关研究领域 如:嵌入式系统、语音识别等 编译原理的学习意义 为设计开发新型高级语言编译器打基础 每种高级语言针对不同的编程需要,如: C—编制操作系统,功能强大,代码效率高 Fortran—主要用于科学计算编程,函数丰富 Java—支持程序可移植性 小结 1 什么是编译程序 2 编译程序的工作过程和逻辑结构 * * 高级语言 程序 翻译程序 低级语言程序 第一章 绪论 什么是编译程序(compiler) 翻译程序:把源程序翻译成与之等价的目标程序的程序。 根据翻译的源语言与目标语言的不同,翻译程序可以分成很多种。 编译程序:源程序是高级语言,目标程序是某种低级语言的翻译程序。 汇编程序:源程序是汇编语言,目标程序是机器语言的翻译程序。 翻译程序:把源程序翻译成与之等价的目标程序的程序。 根据翻译过程的组织不同,翻译程序主要分成编译程序和解释程序。 编译程序:将某种高级语言程序作为输入并进行翻译,产生优化的目标代码并投入执行。 解释程序:将某种高级语言语句作为输入并解释执行,不产生能被执行的结果目标代码。 以解释方式执行高级语言程序结构简单、占用内存少、工作效率低、诊错慢...... 预处理器 编译器 汇编器 装配连接器 工程文件 源程序 目标汇编程序 可重定位机器代码 绝对机器码 可重定位目标文件库 编译执行的高级语言程序的编制过程 信 息 表 格 管 理 程 序 词法分析器 语法分析器 语义处理 中间代码生成器 代码优化 目标代码生成器 源程序 目标程序 单词符号 语法单位 中间代码
文档评论(0)