编译原理与实现编译概述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理及实现;编译原理---课前思考;学习目的;各章节内容;学习要求;参考书目;编译原理(原书第2版) 作者: (美)Alfred V.Aho ?? Monica S.Lam ?? Ravi Sethi ?? Jeffrey D.Ullman ?? 译者: 赵建华 郑滔 戴新宇 出版社:机械工业出版社 ;课程学习网站;题 外 话;考试成绩评定方法;No man is born wise or learned. 没有生而知之者;学习内容: 1.1 程序设计语言 1.2 翻译程序 1.3 编译程序的组成 1.4 编译程序的结构 1.5 编译程序的前后处理器 1.6 TEST语言与编译器;第1章 编译概述;回顾:程序与程序设计语言;1.1 程序设计语言(p1);2、汇编语言(属低级语言) 特点:它是机器语言的符号表示,例如用ADD表示加法,可读性等方面较机器语言有一定的改进,但还依赖于具体的机器,机器不能直接识别和直接执行。; 3、高级语言 特点:它独立于机器,比较接近自然语言,因而容易学习和掌握,且编写程序效率高,编写出的程序易读、易理解、易修改、易移植,但机器不能直接识别和直接执行。 ;高 汇 级 编 语 语 言 言 程 程 序 序;1.2 翻译程序(p2) ;3、翻译程序在计算机系统中的所在层;4、翻译方式 (1)解释方式(相当口译) 特点:源程序的翻译到执行只有一个阶段——解释执行阶段,即:解释程序将按源程序中语句的动态顺序,逐句地进行分析解释,并立即予以执行。在这种翻译方式下,不生成目标代码。;(2)编译方式(相当笔译) 特点:源程序的翻译和目标程序的运行是分阶段进行的,它先将高级语言编写的源程序翻译成汇编语言程序或机器语言程序,然后再运行目标程序。 ;编译程序 vs. 解释程序;a.当目标程序是机器语言程序时,源程序从编译到被执行的过程分为两个阶段:;b.当目标程序是汇编语言程序时,源程序从编译到被执行的过程分为三个阶段:;看起来,编译器似乎完全能代替汇编啊!;预处理器;5、两种翻译方式的比较 ?编译方式与解释方式的根本区别在于是否生成目标代码。 ?在解释方式下执行源程序,易于查错,在程序执行中可以修改程序(代表有BASIC语言) 。但和编译方式相比,执行效率太低。 ?现在有些语言的集成开发环境提供了两种方式,如Visual Basic,调试期间可解释执行源程序,而调好的程序可以编译生成目标程序。 ;编译过程;一个平滑的字符流;;1、词法分析程序(又称扫描器) 词法分析依次读入源程序中的每个字符,依据语言的构词规则,识别出一个个具有独立意义的最小语法单位,即“单词”,并用整数码或有意义的记号来表示每个单词的词性是保留字、标识符、分界符、运算符或常数。 例如,表达式a=10+c*20的词法分析结果如右表所示。;2、语法分析程序 依据语言的语法规则,逐一地分析词法分析时得到的单词,以确定它们是怎样组成说明和语句的,以及说明和语句是怎样组成程序的。 分析时如发现有不合语法规则的地方,则报告出错位置和性质;如无语法错误,则以另一种内部表示(如语法分析树或其它中间表示)给出正确的语法结构,供下一阶段分析使用。;a=10+c*20的语法分析树;3、语义分析程序 依据语言的语义规则对语法分析得到的语法结构进行静态语义检查(即确定类型、类型和运算合法性检查、识别含义与相应的语义处理及其它一些静态语义检查),并用另一种内部形式表示出来,供下一阶段使用。 4、中间代码生成程序(可有可无) 根据语法成分的语义对其进行翻译,用另一种接近于计算机的指令形式(中间代码)表示出来,供下一阶段使用。;语义分析及中间代码生成示例;5、中间代码优化程序(可有可无);6、目标代码生成程序 将中间代码或优化之后的中间代码转换为等价的目标代码。 目标代码的形式可以是绝对指令代码、可重定位的机器指令代码或汇编指令代码。目标代码依赖于具体的计算机的硬件系统结构和指令系统。;7、符号表处理程序 编译过程中要记录源程序中出现的标识符,并收集每个标识符的各种属性信息。符号表是由若干记录组成的数据结构,每个标识符在表中有一条记录。 标识符的各种属性是在编译的不同阶段填入符号表的。词法分析阶段只能分析出标识符名,语法分析阶段只能判断标识符在语句中出现是否合法,语义分析阶段将标识符的各种属性填入符号表并使用这些属性生成中间代码。 ;8、出错处理程序 编译的各个阶段都可能发现源程序中的错误。任意时

文档评论(0)

solow + 关注
实名认证
内容提供者

公共营养师持证人

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

领域认证该用户于2023年05月13日上传了公共营养师

1亿VIP精品文档

相关文档