锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

编译原理笔记

时间:2022-11-19 18:30:00 psg3m磁感应传感器

编译原理

非终结符和终结符

非终结符是大写字母,其余为终结符,除非终结符,如小写字母。

first集

first集是看产生式左侧,右边只看第一个终结符(小写字母)。如果第一个是大写字母,第二个是小写字母,只看第一个,那就去大写字母找。
· 就是看右边第一个是不是终结符,直接写出来,不是去它的非终结符的产生式。

eg:G(E)
E->TE’
E’-> E|ε
T->FT’
T’->T|ε
F->PF’
F’->*F’|ε
P->(E)|a|b|∧

first(E)={(,a,b,∧}
first(E’)={ ,ε}
first(T)={(,a,b,∧}
first(T’)={(,a,b,∧,ε}
first(F)={(,a,b,∧}
first(F’)={*,ε}
first(P )={(,a,b,∧}

follow集

follow集是看产生式右侧,比如求follow(E)就是在产生式右侧找E在哪里
eg:follow集 比如求follow(A)
1.看开始符,加#
2.follow后面是小写字母,直接写小写字母
3.看右边A后面有没有东西,也就是非终结符,有的话不可->空,即ε,把first加入(东西)follow(A)中间,扣除空集;为空寻找;follow(左边)
4.看右边A后面什么都没有,follow(左)加入follow(A)

eg1:G(E)
E->TE’
E’-> E|ε
T->FT’
T’->T|ε
F->PF’
F’->*F’|ε
P->(E)|a|b|∧

follow(E)={),#}
follow(E’)={),#}
follow(T)={ ,),#}
follow(T’)={ ,#,)} 将follow(T)加入follow(T’)中
follow(F)={(,a,b,∧, ,#,)} 将first(T’)加入follow(F)中
follow(F’)={(,a,b,∧, ,#,)} 将follow(F)和follow(F’)加入follow(F’)中
follow(P )={ *,(,a,b,∧, ,#,)}

eg2:
在这里插入图片描述

eg3:

构造DFA

1.A → α.aβ(可移动项):如果当前剩余输入为终结符 a ,则移进 a
2.B → β. (可规约项):按生式 B → β 进行规约
扫描.有非终结符后,在项目中复制相应的符号
如果产生.之后就没了,结构就结束了。SLR(1)分析表需要相应的要求follow集

LL(1)文法

1.消除左递归
2.消除回溯

把first集和follow集写出来
此题A’->ε则需要求follow集,即follow(A相反,如果推出不是空的,直接写first集

SLR(1)文法

移进时填入ACTION表中
遇到规定就去找是第一个推导,然后填。GOTO表中

概念

词法分析器的输入是(符号串)
用于识别(单词)的词法分析器

1.编译程序,解释程序的区别:是否生成目标代码(前者有,后者没有)
2.编译程序的五个主要阶段:词法分析、语法许可、语义分析和中间代码生成、代码优化、目标代码生成
3.克林闭包比正闭包多了一个空串
4.由终结符组成的字符串称为句子
5.句型可以包含非终结符,句子不能包含非终结符

短语

1.二义性 不同的语法树有二义性 文法的规定不一定是唯一的
2.直接短语(简单短语):语法树找两层子树,叶结点从左到右依次连接
3.句柄:最左边的直接短语
4.短语:语法树找到任何子树,从左到右依次得到短语

文法的分类

PSG 0型文法(短语结构文法)
CSG 1型文法(上下文相关文法)
CFG 2型文法(上下文与文法无关
BC 3型文法(正则文法)

属性

1.文法符号X携带的语义信息称为X的语义属性,简称属性
2.综合属性:节点的属性值是通过分析树中节点或其子节点的属性值值
3.继承属性:节点的属性值由节点、节点的兄弟节点或父节点的属性值计算
4.固有属性:通过词法分析直接获得的属性

锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章