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

简介: 编译原理----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型文法描述能力是越来越小的:

即描述能力:0型>1型>2型>3型

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

目录
相关文章
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
44456 6
Hadoop入门(一篇就够了)
|
Rust 算法 Go
【密码学】一文读懂FNV Hash
FNV哈希全名为Fowler-Noll-Vo算法,是以三位发明人Glenn Fowler,Landon Curt Noll,Phong Vo的名字来命名的,最早在1991年提出。它可以快速hash大量的数据并保持较小的冲突概率,适合hash一些相近的字符串比如IP地址、URL、文件名等等。目前FNV算法有三个版本,分别是: FNV-0(已废弃)、FNV-1以及FNV-1a。这三个算法的结构非常相似,因此呢,在这里就一块说了。
5446 0
【密码学】一文读懂FNV Hash
|
Web App开发 开发工具 git
如何下载Github上的单个文件或者指定目录?
如何下载Github上的单个文件或者指定目录?
5799 0
如何下载Github上的单个文件或者指定目录?
|
10月前
|
JavaScript Shell API
阿里云百炼 API 调用教程:准备 API-Key、配置环境变量和调用 API 流程
在使用阿里云百炼平台的大模型能力时,API 调用是核心环节 —— 无论是开发 AI 应用、测试模型效果,还是搭建智能服务,都需要通过 API 将大模型能力集成到自己的系统中。不过对很多开发者来说,从准备密钥到实际调用的流程可能存在疑问,比如 “API-Key 怎么获取”“环境变量配置有什么用”“不同语言怎么写调用代码”。本文结合最新的实操细节,用通俗的语言把整个流程拆解开,从账号准备到多语言调用,每一步都附具体操作和代码示例,帮大家快速上手。
21066 113
|
编译器
区分LR(0),SLR(1),LR(1)和LALR(1)
区分LR(0),SLR(1),LR(1)和LALR(1)
2978 1
|
机器学习/深度学习 传感器 监控
机器学习:强化学习中的探索策略全解析
在机器学习的广阔领域中,强化学习(Reinforcement Learning, RL)无疑是一个充满魅力的子领域。它通过智能体与环境的交互,学习如何在特定的任务中做出最优决策。然而,在这个过程中,探索(exploration)和利用(exploitation)的平衡成为了智能体成功的关键。本文将深入探讨强化学习中的探索策略,包括其重要性、常用方法以及代码示例来论证这些策略的效果。
|
Java 编译器 数据安全/隐私保护
Java 大学期末考试真题与答案 含知识点总结 重难点归纳及题库汇总 Java 期末备考资料
本文汇总了Java大学期末考试相关资料,包含真题与答案、知识点总结、重难点归纳及题库,涵盖Java基础、面向对象编程、异常处理、IO流等内容,并提供完整代码示例与技术方案,助你高效复习备考。
1399 3