文章分类 -  编译原理

摘要:1.符号表的作用:符号表是编译程序的一个主要数据结构,符号表通常与编译程序的各个阶段有关,编译程序的各阶段需要不断向符号表输入信息,或者通过它消除二义性。具体有下面几个:(1)收集符号的属性。(2)提供上下文语义的合法性检查的依据。(3)作为目标代码生成阶段地址分配的依据。2.符号表的内容:一般来说 阅读全文
posted @ 2017-06-05 23:10 freeflying 阅读(3100) 评论(0) 推荐(0)
摘要:1.中间代码:即中间语言,独立于机器的,复杂性介于源 语言和机器语言之间的一种表示形式。采用中间语言的好处:(1)便于进行与机器无关的代码优化工作;(2)使编译程序改变目标机更容易;(3)使编译程序的结构在逻辑上更为简单明确。2.后缀式: (1)如果E是一个变量或常量,则E的后缀式就是E本身; (2 阅读全文
posted @ 2017-06-05 23:09 freeflying 阅读(1160) 评论(0) 推荐(0)
摘要:1.属性文法:在上下文无关文法的基础上,为每个文法符号引进一组属性,且让该文法中的重写规则附加上语义规则时,称该上下文无关文法为属性文法。(属性文法往往以语法制导定义和翻译模式两种形式出现。具体说明问度娘) 注意: (1)属性与变量一样,可以进行计算和传递。 (2)属性加工的过程即是语义处理的过程。 阅读全文
posted @ 2017-06-05 16:20 freeflying 阅读(1819) 评论(0) 推荐(0)
摘要:1.自底向上的分析法(移进-归约分析):就是对输入符号串从左向右进行扫描,逐步进行“归约”,知至归约到文法的开始符符号。 2.体系结构: 移进:无句柄的时候移进。 归约:有句柄的时候归约。 接受:acc,分析成功。 出错 3.LR分析法(一种有效的自底向上的分析法,可以用于大多数的上下无关的文法) 阅读全文
posted @ 2017-05-15 15:58 freeflying 阅读(900) 评论(0) 推荐(0)
摘要:1.代替部分由公因子就会出现回溯。 2.LL(1)文法 (1)FIREST集 这样说从文法的左部找右部相关的非终结符号。 若 X->BC..D,则将First(B)所有元素(除了ε)加入First(A),然后检测First(B),若First(B)中不存在ε,则停止,若存在则向B的后面查看,将Fir 阅读全文
posted @ 2017-04-25 17:25 freeflying 阅读(238) 评论(0) 推荐(0)
摘要:1.程序语言的单词符号一般分为:保留字,标识符,常数,运算符,界符。 2.状态图:开始的粗箭头,结束使用的双圈(有时会有*在结束双圈上,表示多读进一个不属于标识符部分的字符,应当把它退还给输入串。) 3.正规式与正规集:p36 4.确定有限自动机(DFA): – M=(Q, Σ, δ, q0, F) 阅读全文
posted @ 2017-04-25 11:04 freeflying 阅读(578) 评论(0) 推荐(0)
摘要:任何高级语言程序都可以看成一个特定字母表(即元素的非空有穷集合)上的一个字符串(有穷序列)。 1语法:就是指上面字母表的规则,用它可以形成和产生一个合法的程序。 词法规则:是指单词符号的形成规则(一般包括标识符、常量、保留字、界符、算符等类型)。 语法规则:就是使用单词符号构成更大的结构。一般高级语 阅读全文
posted @ 2017-04-25 09:17 freeflying 阅读(423) 评论(0) 推荐(0)
摘要:1编译程序:将源语言转换为另一种语言程序(低级语言) 2解释程序:不产生程序代码,对源程序进行逐条语言分析,执行得到运算结果 3编译的过程:词法分析 语法分析 语义分析产生中间代码 代码优化 生成目标代码 词法分析(LEX):你可以想象成一片英文,你把每一单词翻译出来。 语法分析(yacc):就是把 阅读全文
posted @ 2017-03-15 15:48 freeflying 阅读(130) 评论(0) 推荐(0)