编译原理基础知识02
1、文法:用来描述表达式的规则
2、上下文无关文法(四个要素组成)
①一个终结符号集(或者叫词法单元)
②一个非终结符号集(或者叫语法变量)
③一个产生式集合:就是由非终结符到终结符的推导式子
④指定一个非终结符号为开始符
终结符集和非终结符集是不相交的。
3、非终结符号的产生式:如果一个非终结符号位于一个产生式的头部,那么这个产生式称为非终结符号的产生式
4、一个终结符号串,是由零个或者多个终结符号组成的序列。零个终结符号组成的串称为空串,记作ε
5、一个文法可能有多个语法树可以生成同一个给定的终结符号串,这样的文法具有二义性。要证明一个文法具有二义性,找到一个终结符号串,然后看是否含有两棵语法树。
6、短语、直接短语、句柄的区分
短语:(找非终结字符所对应的所有终结字符串)一个句型中的语法树中任一子树叶节点所组成的字符串都是该句型的短语
直接短语(简单短语):子树中不包含其他子树的字符是直接短语(子树的高度为2)
句柄:直接短语中的最左直接短语为该句型的句柄
7、最左推导:任何一步推导,都是对最左边的非终结符号进行替换
最右推导(又称为规范推导):任何一步推导,都是对最右边的非终结符号进行替换
8、描述文法生成的语言:就是直接描述就好了
G:表示出来对应的文法
L:表示对应的语言,表示出来语言的元素(写集合的表达式),描述文法生成的语言,直接用文字描述就可以了
8、产生式左部相同的时候,可以对产生式右边进行合并。产生式右边叫做候选式
9、将编译程序分成若干个遍,是为了“使程序的结构更加清晰”
本文作者:风归去
本文链接:https://www.cnblogs.com/N-lim/p/16981457.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步