编译原理----0型,1型,2型,3型文法

0型文法:

解释:(左部)可以包含非终结符和终结符,(右部)可以包含非终结符和终结符,但是(左部)中至少包含1个非终结符

符合:Ab-->b,B-->Bb

不符合:a-->b,ab-->BA,a-->bA

1型文法(上下文有关文法):

在0型文法的基础上,还需符号

解释:左部符号串长度必须小于右部符号串长度

符合:A--->bB Aa--->abc --->(特例) aB--->

不符合:Ab-->c Ba--->c

2型文法(上下型无关文法):

在1型文法的基础上

符合:A--->aB B--->BB B-->ab

不符合:Ab--->aB AA--->Ba bb--->AB

3型文法(正规文法):

在2型文法的基础上

解释:产生式规则的右侧只能包含一个终结符后跟一个非终结符,或者只包含一个终结符,或者是空串。

右线性文法就是后半部分中非终结符在右侧,例如:A--->bA

左线性文法就是后半部分中非终结符在左侧,例如:B--->Ab

符合:A--->bA B---->Ba B---->BBa A-->b

不符合:A--->AbB

从0型到3型文法的限制是越来越大的:

相关推荐
yunmi_11 分钟前
2024版 IDEA 用 Maven 创建 java 项目(+Maven 安装和配置)
java·maven
Stardep12 分钟前
ssh远程连接服务器到vscode上“连接失败”
服务器·vscode·ssh
uhakadotcom15 分钟前
入门教程:如何编写一个chrome浏览器插件(以jobleap.cn收藏夹为例)
前端·javascript·面试
float_六七16 分钟前
Spring事务注解@Transactional核心机制详解
java·后端·spring
☆璇16 分钟前
【Linux】进程概念(下)
linux·运维·服务器
渣哥17 分钟前
Java 线程安全详解:定义、常见问题与解决方案
java
捡芝麻丢西瓜18 分钟前
SPM 之 混编(OC、Swift)项目保姆级教程(Swift Package Manager)
前端
没有bug.的程序员18 分钟前
Redis 大 Key 与热 Key:生产环境的风险与解决方案
java·数据库·redis·缓存·热key·大key
我是天龙_绍18 分钟前
cdn是个啥?
前端
南雨北斗19 分钟前
VSCode三个TS扩展工具介绍
前端