编译原理(清华大学版)第二章
第二章 文法和语言
符号和符号串
- 字母表是元素的非空有穷集合
- 字母表中的元素称为符号
- 字母表中的符号可以组成的任何有穷序列称为符号串
符号串运算:
1.符号串的头尾,固有头和固有尾
2.符号串的连接
3.符号串的方幂
4.符号串的集合
各种定义
文法 定义为四元组
推导的概念
- 设
是文法 五元组的规则, 和 是 中的任意符号,若有符号串 满足
则说
- 如果直接推导序列:
则称
句子、句型、语言定义
设
若
语言:定义为集合
文法等价
若
文法的类型
0型、1型、2型、3型。
0型文法概念
设
0型文法相当于图灵机,任何0型语言都是递归可枚举的,泛指递归可枚举的必定是一个0型语言
1型文法概念
设
2型文法概念
设
3型文法概念
设
上下文无关文法和语法树
上下文无关文法最直观的表达方式是语法树
如果推导的任何一步
最右推导一般称之为规范推导。
文法的二义性和语言的二义性是两个不同的概念。
如果一个文法存在的某个句子,有两个不同的最左(最右推导),则说这文法是二义的。或者某个句子对应两棵不同的语法树。
句型的分析
- 令G是一个文法,S是文法的开始符号,
是文法G的一个句型。如果有 且 ,则称 是句型 相对于非终结符A的短语 - 如果
,则称 是句型 相对于规则 的直接短语,也叫简单短语。 - 一个右句型的直接短语称为该句型的句柄。
- 如果文法无二义,右句型有唯一的最右推导,句柄唯一,是所有直接短语中最左边的那一个
- 如果文法是二义的,则有多个句柄。
本文作者:Graffiti404
本文链接:https://www.cnblogs.com/graffiticode/p/18129320
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步