编译原理-文法
2014-04-30 12:33
232 查看
1、文法的定义
描述语言的语法结构的形式规则称为文法。(组合成语言的规则)2、文法的基本形式
α→β终结符(a,b,c,…..) )和非终结符(A,BC,D,….):
终结符具有原子性,不可再分。非终结符,可以再分。
非终结符(程序)->终结符(语句)
终结符不可以单独出现在α中;
3、文法组成
文法G是一个四元组,可表示为G(VT,VN,S,P)。VT(terminal symbol)是一个非空有限集,每个元素称为终结符。
VN(nonterminal symbol)是一个非空有限集,每个元素称为非终结符,它是不能单独在左边的。
S是一个非终结符,称为开始符号;它至少要在一条产生式中作为左部出现。
P是一个产生式集合(有限)。
以下图体会一下文法的组成:
4、文法中的四种类型
认识四种文法
文法之间的关系
0型文法是限制最小的文法,其他的一级比一级严格;也就是说满足3型文法一定满足0型、1型、2型文法,2型文法满足前两种文法,以次类推。
文法举例
0型文法:例:A→a,Aa→a,aA→a(左边至少有一个大写字母)
1型文法:
例:A→a,A→ab,Aa→BAc
注意:α→ε也满足1型文法。
2型文法:
例:A→a,A→ab,A→BAc(在1型文法的前提下,左边必须都是大写字母)
3型文法:
例子1: A→a,A→aB,B→a,B→cB,符合。
例子2:A→ab,A→aB,B→a,B→cB或推导为:A→a,A→Ba,B→a,B→cB ?
结果:都不是3型文法。
更正: A→a,A→aB,B→a,B→cB符合。
A→a,A→aB,B→a,B→cB 或A→a,A→Ba,B→a,B→Bc 符合
5、小结
一、一个文法中要么符合左线性,要么符合右线性,两套规则不能同时出现在一个语法中
二、
1)一个产生式推出的非终结符只能有一个;2)如果是一个文法中,非终结符要么都在右边的右边,要么都在右边的左边。
相关文章推荐
- 软件设计师必备——编译原理·文法
- 编译原理4种文法类型
- 编译原理(三) 消除文法的左递归
- 简单算符优先文法分析程序(编译原理)
- 编译原理语法分析之文法的相关概念
- 编译原理--文法
- 编译原理(六) LL(1)文法分析法(分析过程的C++实现)
- 编译原理与编译构造 LR文法
- 编译原理与编译构造 由语言构造文法2
- 编译原理:文法和语言
- 编译原理之LL(1)文法分析(使用分析表)
- 侃一侃编译原理的“文法”
- 编译原理(九) LR(0)文法分析法-算法描述
- 编译原理学习笔记·关于四种文法的理解以及 如何根据语言描述给出正则式或相应文法
- 编译原理:文法类型判断C++实现
- 编译原理之文法二
- 编译原理与编译构造 由语言构造文法1
- 编译原理-文法复习
- 编译原理--文法的理解
- 浅谈编译原理之文法