【编译原理】文法分类
文章目录
- 0型文法
- 1型文法
- 2型文法
- 3型文法
- 总结
0型文法
1型文法
(和0型文法的差别就是左部α中符号数要小于等于β中的符号数)
1型文法中不包含空产生式(如果包含空串ε,β为空串的话|β|=0,又因为|α|≥1,前后矛盾)
2型文法
每个产生式的左部都是一个非终结符
3型文法
3型文法是在2型文法的基础上对产生式右部做了限制:
- 右线性文法:产生式右部是
终结符号串接一个非终结符
- 左线性文法:产生式右部是
一个非终结符接终结符号串
{
对下面蓝框例题解析:
③T定义为a,b,c,d,0,1,2,3,4,5,可看作所有小写字母和数字
④T可看作数字字母串
①S定义为a,b,c,d,可看作S定义为所有小写字母
②S定义为标识符
}
黄框内的内容与蓝框内的文法呈等价关系,都是右线性文法
总结
【编译原理】文法分类相关推荐
- #编译原理# 文法和内容(二)
文法和内容 编译原理笔记第二部分,内容参考:北航软院教师邵兵课堂课件及内容.张莉著<编译原理及编译程序构造>.国防工业出版社的<编译原理--学习指导与典型题解析>.AlvinZ ...
- 编译原理——文法的基本概念
文法的概念 每一种自然语言或者是编程语言都需要文法来描述,文法相当于语言学的语义分析,即分析每一句话所表示的含义,编译器需要利用文法来完成其语法分析和语义分析. 在目前编程语言领域,上下文无关文法作为 ...
- 编译原理-正则文法与正则表达式的相互转化
正则文法与正则表达式的相互转化 前言 一.正则文法 1.定义 2.例子 二.正则表达式 1.定义 2.例子 三.转换规则 1.正则文法转换为正则表达式 2.正则表达式转换为正则文法 四.转换例子 1. ...
- 编译原理实验c语言cfg文法,编译原理
地址在符号表中引入指针previous,来连接上一个符号的首地址运行时存储空间组织活动记录用于管理函数变量的信息栈式存储过程进入和返回通过变更top和sp指针,实现活动记录的栈式处理静态链实现局部变量 ...
- 编译原理之形式语言文法分类
高级程序设计语言的三个基本因素: 语法:描述语言成分的构成规则(包括词法规则和语法规则) 语义:描述语法成分的含义 语用:描述语法成分的使用方法 形式语言理论(formal language theo ...
- 编译原理(文法、符号表)
文法 在计算机科学中,文法是编译原理的基础,是描述一门程序设计语言和实现其编译器的方法(文法是用于描述语言的语法结构的形式规则). 1个文法 G 是一个四元组 G = (VN , VT , S, P) ...
- 编译原理之LL(1) 、LR(0)、SLR、LR(1)、LALR文法的对比
原创 编译原理之LL(1) .LR(0).SLR.LR(1).LALR文法的对比 2018-01-12 21:42:09 棉花糖灬 阅读数 25323 收起 分类专栏: 那些有趣的知识 版权声明:本文 ...
- 编译原理四种文法的理解补充
如果你是学习,给定一个文法,判断是哪一个文法的话,那这篇不是讲这个,只是一点小小的理解补充. 四种文法如下: 补充: 1.0型文法,即递归可枚举文法相当于图灵机是指: 给定一个文法G,一个句子g,如果 ...
- 编译原理lr(0)c语言,关于编译原理:LR(1)LR(0)文法判断?
"编译原理"是大学计算机类专业的一门主干课程.设置本课程的目的,在于系统的向学生讲述编译系统的结构.工程流程以及编译程序各组成部分的设计原理和实现技术,使学生通过本课程的学习,既掌 ...
- 【最新合集】编译原理习题(含答案)_2程序设计语言及其文法_MOOC慕课 哈工大陈鄞
[最新合集]MOOC哈工大陈鄞 编译原理答案全集-->传送门 1 文法:G:S→xSx | y所识别的语言是( ). 2 给定文法A→bA|ca,为该文法句子的是( ). A. bba B. c ...
最新文章
- 最大数值(不能使用比较运算符)
- 2018年终总结(一只刚毕业的程序猿)
- java基础(四) java运算顺序的深入解析
- 在tomcat中使用context节点部署工程
- php用json_encode编码后乱码,php json_encode()函数中文编码乱码解决方法_PHP教程
- java excel相同的合并_java servlet导出EXCEL并合并EXCEL相同值的单元格(Apache POI技术)...
- preg使用。还是一样,只是个人记录,不放博客园首页
- jquery模板插件jTemplates代替拼html
- 函数式编程会取代GoF设计模式吗?
- html5游戏开发教程实战 五子棋 四子棋 围棋 翻转棋四种对弈游戏,仅仅100行代码
- 远程访问型木马——灰鸽子软件的使用(含免杀)
- OBS录屏软件使用指南
- 网易企业邮箱 服务器 端口,网易企业邮箱客户端——Thunderbird设置
- Java class对象说明 Java 静态变量声明和赋值说明
- Who is the lion(谁是狮子)!
- 蓝桥杯 真题:明码 一题掌握3种码
- 免费实时汇率查询Api接口
- 【深度学习】VGG16--slim
- 英语单词词性顺口溜_巧记英语单词的顺口溜 这样记忆不枯燥
- vant 引进单个样式_记一次webpack打包样式加载问题
热门文章
- mysql和tdengine_TDengine 基本操作
- python脚本根据cookies自动登录网站_Python爬虫如何使用Cookies登录网站
- 计算机图形学基础期末考试试题,计算机图形学基础_试卷(B)答案
- c语言推箱子文字说明,c语言 推箱子(C language Sokoban).doc
- VC++编程实现多显示器控制(复制、横屏、纵屏,显示器个数)
- html5控制单片机,10.2 单片机中 PWM 的原理与控制程序
- JVM知识点总览:高级Java工程师面试必备
- 五分钟入门 Dingo API
- JS之函数实际参数转换成数组的方法[].slice.call(arguments)
- Linux 进程管理与监控(supervisor and monit)