编译原理----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型文法的限制是越来越大的:

相关推荐
小怪点点几秒前
手写promise
前端·promise
国思RDIF框架9 分钟前
RDIFramework.NET Web 敏捷开发框架 V6.3 发布 (.NET8+、Framework 双引擎)
前端
Mintopia10 分钟前
如何在有限的时间里,活出几倍的人生
前端
炫饭第一名11 分钟前
速通Canvas指北🦮——变形、渐变与阴影篇
前端·javascript·程序员
Neptune112 分钟前
让我带你迅速吃透React组件通信:从入门到精通(上篇)
前端·javascript
阿懂在掘金12 分钟前
Vue 表单避坑(一):为什么 v-model 绑定对象属性会偷偷修改父组件数据?
前端·vue.js
小码哥_常17 分钟前
Android与JS交互:解锁混合开发的魔法之门
前端
leafyyuki21 分钟前
如何优雅地上传大文件?分片上传实战指南
前端·音视频开发
Mintopia24 分钟前
现代 Vue 3 页面组件文件安排与通信实践
前端
只会cv的前端攻城狮25 分钟前
兼容性地狱-Uniapp钉钉小程序环境隔离踩坑实录
前端·uni-app