编译原理-文法
来源:互联网 发布:新浪实时股票数据接口 编辑:程序博客网 时间:2024/05/01 05:50
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型文法:3型文法:例:A→a,A→ab,A→BAc(在1型文法的前提下,左边必须都是大写字母)
例子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)如果是一个文法中,非终结符要么都在右边的右边,要么都在右边的左边。
- 编译原理-文法
- 编译原理-文法
- 编译原理LL1文法
- 编译原理--文法
- 编译原理 LR文法
- 编译原理--文法基础知识
- 编译原理基础:文法
- 编译原理与文法
- 编译原理-文法
- 编译原理 文法
- 编译原理文法
- [编译原理]文法一
- [编译原理]文法二
- 编译原理 文法分析
- 编译原理之文法
- 编译原理之文法
- 编译原理----中的文法及文法类型
- 编译原理-表达式的文法
- Java配置Hibernate教程
- CSM认证培训知识点总结
- 用电脑做服务器,搭建应用后应对不同网络环境发布应用
- ERP项目实施记录08
- Windows 7 完全硬盘安装方法 干干净净的C盘
- 编译原理-文法
- fzu 2173 floyd+矩阵快速幂
- 希尔排序 缩小增量排序
- node.js 创建第一个web应用
- 深入理解Servlet/JSP之“Cookie和Session原理”
- 实战1——Hive与JDBC示例
- PB从剪贴板取图并保存
- Windows 7 完全硬盘安装方法 干干净净的C盘
- UML类图 图解