- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译程序 是一种程序,它把高级语言编写的源程序翻译成与之在逻辑上等价的机器语言或汇
编语言的目标程序。
一个高级语言程序的执行通常分为两个阶段,
即编译阶段和运行阶段。
如果编译生成的目标
程序是汇编语言形式,那么在编译与运行阶段之间还要添加一个汇编阶段。
解释程序 也是一种翻译程序,它将源程序作为输入,一条语句一条语句地读入并解释执行。
解释程序与编译程序的主要
区别是:编译程序是将源程序翻译成目标程序后再执行该目标程
序,而解释程序则是逐条读出源程序中的语句并解释执行,
即在解释程序的执行过程中并不
产生目标程序。
源 程 序
编译过程 可以划分成五个阶段:词法分析阶段、语法分
析阶段、语义分析和中间代码生成阶段、优化阶段和目
词法分析器
标代码生成阶段。 词法分析的任务 是对构成源程序的字
单词符号
语法分析器
符串进行扫描和分解,根据语言的词法规则识别出一个
表
出
语法单位
个具有独立意义的单词;
语法分析的任务 是在词法分析
格
语义分析与
错
的基础上,根据语言的语法规则(文法规则)从单词符
管
中间代码生成器
处
号串中识别出各种语法单位并进行语法检查;
语义分析
四 元 式
理
理
和中间代码生成阶段的任务 是首先对每种语法单位进行
优 化
静态语义检查,然后分析其含义,并用另一种语言形式
四 元 式
优化的任务是对前阶
来描述这种语义即生成中间代码;
目标代码生成器
段产生的中间代码进行等价变换或改造,以期获得更为
高效(节省时间和空间)的目标代码; 目标代码生成阶段的任务是把中间代码(或经优化处、理之后)变换成特
目标程序
编译程序 结构示意图
定机器上的机器语言程序或汇编语言程序,实现最终的翻译工作。
形式化的方法 :用一整套带有严格规定的符号体系来描述问题的方法。
标识符 :以字母打头的字母数字串
字母表 :是元素的非空有穷集合。
字符 :字母表中的元素称为符号,或称为字符。可以是字母、数字和其他符号。
符号串的运算 :符号串的连接、集合的乘积、符号串的幂运算、集合的幂运算、集合
A 的
正闭包 A+与闭包 A*
形式语言 :字母表上所有的字符按照某种规则所组成的集合。
句子 :均对应与字母表中的符号串。
文法 :是规则的非空有穷集合
(描述语言的文法不唯一)
文法四元组 :G[S]=(VN,VT, P, S) VN :非终结符集
VT:终结符集
(VN ^ VT=空集)
P:产生式集 S:文法的开始符号
直接推导 :在推导过程中只使用了一个产生式。
推导 :经一步到多步推导出结果。 (推导:用产生式的右部取代其左部的过程
规约:用产
生式的左部取代其右部的过程)
广义推导 :经 0 步到多步推导出结果。
句型 :S经 0 步到多步推导出
x 且 x 属于 V*( V 是 VN T
V 的并集),则 x 是该文法的一个句型。
句子 : S 经 0 步到多步推导出
x 且 x 属于 VT* ,则 x 是该文法的一个句子。句子是一种句型
语言 :文法 G[S]产生的所有句子的集合称为文法
G 所定义的语言,记为
L( G[S]):
L(G[S]) ={x|S 经一步到多步推导出 x 且 x 属于 V *} (文法给定,则语言确定)
T
最左(右)推导 :每步推导都坚持替换当前句型最左(右)边的非终结符。
(最右推导也称
规范推导。 用规范推导推导出的句型称为规范句型。
其逆过程是最左规约, 也成为规范规约)
递归规则 (产生式递归) :是指在规则的左部和右部具有相同非终结符的规则。
如 左递归: A-A 右递归: A- A 递归: A- A
文法的递归性 :对于一文法若存在任一非终结符经过 0 步或多步可以推导出含有其自身的字
符串,则该文法是递归的。 (语言无穷,文法递归) (产生式集中无递归规则,文法也可能是递归的。若文法中有直接左(右)递归规则,则称该文法为左
递归文法或称文法左递归)
句柄 :一个句型的最左直接短语
语法树 :推导的图形表示。一棵倒立的树, 以开始符号作为树根, 每步画分支的过程都和推
导相对应。
子树 :语法树中任一结点连同所用分支组成的部分。对应短语简单子树 :只有上下两代的子树。对应直接短语
文法的二义性 :如果一个文法存在某个句子对应两棵不同的语法树 (或最左推导或最右推导)则说这个文法是二义性的。 (文法二义性不同语言二义性:文法二义性,有时可以找到等价
的无二义性的文法, 则其对应的语言无二义性; 语言若有二义性, 则它不存在无二义性的文法)
句子的二义性
:文法 G[S]的一个句子如果能找到两种不同的最左推导
两棵不同的语法树,则称这个句子是二义性的。
(或最右推导
),或者存在
LL(1)的含义: (LL(1)文法是无二义
文档评论(0)