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

相关推荐
Nebula_g5 小时前
JavaSE加强:IO流
java·开发语言·windows·stream·javase
rannn_1115 小时前
JVM 面试题:类加载过程详解(附高频考点)
java·jvm·后端
程序猿乐锅9 小时前
从0-1一文详解RabbitMQ
java·分布式·后端·中间件·rabbitmq·ruby
考虑考虑12 小时前
JDK26中的List.ofLazy()
java·后端·java ee
小蒜学长12 小时前
基于SpringBoot的公寓报修管理系统的设计与实现(代码+数据库+LW)
java·spring boot·后端·公寓报修管理系统·多角色协同
for_ever_love__12 小时前
MySQL 主从复制讲透:binlog 原理、搭建步骤与读写分离
java·数据库·mysql·binlog·读写分离·原理·主从复制
不会就选b14 小时前
Linux之TCP理论<1>
linux·运维·服务器
小π军15 小时前
操作系统面试题
java·linux·服务器
倔强的石头10615 小时前
应用账号最小权限实践:读写账号、报表账号、运维账号分层
java·运维·开发语言