编译原理编译引论.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理 第一章 引论第一节、编译程序概述一 什么是编译程序? 计算机经过几十年的发展, 在程序设计语言方面,已经从低级语言发展到高级语言;然而,计算机内部的本质只能识别 0 , 1 代码序列(机器语言),而对高级语言甚至符号语言仍然一窍不通。 因此用高级语言编写的程序,必须先翻译为机器语言,才能被计算机理解执行。第一个完成这种翻译任务的编译程序为FORTRAN编译程序,是上世纪五十年代设计的.翻译为机器语言程序高级语言程序定义:设源语言为L1,目标语言为L2, 翻译程序是一个程序,它能将L1转换为逻辑上等价的L2。 若 L1 为高级语言,L2 为低级语言或机器语言,称这种 翻译程序为编译程序。 若 L1 为低级语言,L2 为机器语言,称这种翻译程序为 汇编程序。 解释程序是指逐条翻译 L1的语句,并立即执行翻译出的 目标代码序列。 编译原理 就是介绍编译程序的一般规律及设计方法的一门课程。二 编译过程概述 编译程序从接受源程序到输出目标代码的整个过程,可逻辑的分为 5 个阶段,词 法 分 析语 法 分 析 中间代码生成 代 码 优 化 目标代码生成 1) 词法分析:把源程序作为字符串进行扫描 ,根据单词词法,识别出所有单词,过滤无用符,并检查是否为合法的单词。 单词一般分为如下几种: 基本字,标识符,常数,算符,界符 ifn=1thenf:=1 elsef:=n*f(n);例如: if n=1 then f:=1 else f:=n*f(n); 该程序经过语法分析,得到如下单词序列:过滤掉回车换行,空格,注释等2) 语法分析: 根据语言的语法规则,从单词符号串中识别出各种语法单位 ,进行句子分析,并检查整个输入字串是否为合法的程序; 重要的语法单位有: 程序,子程序,语句,短语,表达式等例如:program add;var a,b:real;begin read(a,b);write (a+b);end.程序执行部说明段首部programvarbegin多语句end说明语句程序名及参数变量名表变量类型addread(a,b)write(a+b)a,breal3) 中间代码生成:根据语义规则,把各种语法单位翻译成中间代码序列. 中间代码有三种: 四元式,三元式,逆波兰式. 中间代码的特点:结构简单,语义明确,易于理解及优化. 四元式可表示为: (操作符,操作数1,操作数2,结果) 四元式序列(+ ,x, 0.4, T1)(* , T1, Y, T2)(/ , T2, w, T3)(:= , T3, , Z)例如: 语句 Z:=(x+0.4)*Y/W; 翻译后得到右面 的四元式序列:从示例可看出:每条四元式只进行一次最基本的操作.4) 代码优化:对产生的中间代码序列进行加工变换,使变换后的代码更为高效 (时间,空间上)。 优化主要有: 循环优化,公共表达式提取,强度削弱等。5) 目标代码生成:把中间代码程序翻译为机器指令或汇编指令程序。 这一部分的处理,与计算机硬件及操作系统密切相关。 如寄存器数目,机器指令功能及指令条数;操作系统的 BIOS,内存管理,文件管理等。三 编译程序的结构 编译程序可以划分为如下几个基本模块:源程序 表格管理 错误处理词法分析器单词符号语法分析器语法单位中间代码生成四元式中间代码优化四元式目标代码生成目标程序编译程序总框表格管理:对各种表格进行管理,包括表格的构造、查找、修改、 删除、插入 等; 编译程序中,表格的种类较多,最主要的有如下几种: 符号表,常量表,标号表,子程序名表,四元式表等。 表格由若干结构相同的表格项组成,表格项由二元式表示:表格项表格项名 1 信息项名 信息项名 2 信息项名 n信息低级语言高级语言人工设计方式自动生成扫描器自动生成分析器自动生成编译程序自动生成四 设计编译程序 编译程序的设计方式可以分为两类:第二节、高级语言概述一 什么是程序设计语言 程序设计语言是一符号系统,由语法和语义两方面所定义。语法:是一组规则,规定了语言的形式结构,包括单词结构, 句子结构,程序结构等。 语法={词法规则+句法规则} 词法规则:规定了形成单词的规则;如常数,标识符, 基本字,算符等。 句法规则:规定了由单词构造更大语法单位的规则; 如表达式,短语,语句,程序等。语义:也是一组规则,规定了各语法单位的确切含义。 例如:A=B,可解释为:A赋值为B;(C语言) 也可以解释为 :A等于B (P语言) 这完全由语义规则所确定。二 数据类型 各种语言都提供了一些最基本的数据类型,称为初等数据类型,这些数据类型的特征

文档评论(0)

1234554321 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档