终结符与非终结符详述
目录
一、终结符定义
二、非终结符是什么
三、终结符与非终结符在编译原理应用
总结
一、终结符定义
不可再分的字符或串(百度百科)
注:
这里的字符或字符串是一个宏观的概念,可以套用在许多方面。例如化学方面,不可再分的是原子;句子结构中不可再分的是短语。
例如
在一篇英语文章中,从结构上看,主语就是非终极符号。这里前提是主语不可再分,你如果说主语是由字母或者数字组成,那么你也可以认为字母为终结符。
二、非终结符是什么
定义:
可以再分的字符或串
一个程序可以看作一个非终极符。 因为程序可以分为很多模块。
三、终结符与非终结符在编译原理应用
- 终结符与非终结符在编译原理中的表示由于终结符与非终结符不相交,这里的不相交指的是独立。在书中,两两互不相交的且容易分辨的就是大小写字母,因此用大小写字母来表示终结符与非终结符。
- 那么用什么字母来表示终结符?
由于定义中,非终结符不可以再分,所以用小写字母表示终结符,大写字母表示非终结符。
所以由于终结符不可再分,即不可再推出,所以也可以说终结符位于产生式的左边。
在书中,终结符集合用Vt表示,非终结符用Vn表示。
总结
- 主要区别:终结符不可再分,非终结符可再分。
- 大写字母代表非终结符,小写字母代表终结符。
- 终结符集合用Vt表示,非终结符用Vn表示。
终结符与非终结符详述相关推荐
- 编译原理学习(二)--终结符和非终结符
由于书中没有对终结符和非终结符给出明确的定义,导致看的昏昏沉沉,因此专门搜索资料理清楚它们的含义. 1.终结符 终结符是一个形式语言的基本符号.就是说,它们能在一个形式语法的推导规则的输入或输出字符串 ...
- 如何求非终结符的FIRST集合FOLLOW集
最近马上要步入考试周了,编译原理的这个Follow集一直令我头大啊,今天百度了下下,找到一篇文章,看了以后我瞬间就明白了如何求解Follow集~~,如果你也不知道如何求解Follow集,请看看下面的这 ...
- 编译原理和离散数学 考研
离散数学 四色定理的内容?解决方法? 四色定理又称四色猜想.四色问题,是世界三大数学猜想之一.四色定理是一个著名数学定理,通俗称:每个平面地图都可以只用四种颜色来染色,而且没有两个邻接区域颜色相同./ ...
- LR1语法分析C语言代码,LR1语法分析
LR1语法分析 Last Updated 11.28 by Nie Zili 一.数据结构简介 该项目采用面向对象的思想设计数据结构,共设有6个类,其递进关系如下: pstring,产生式类.定义了L ...
- 句法依存分析_[NLP学习笔记]句法分析
句法分析任务简介 成分句法分析(Constituency Parsing):分析句子的成分,给出一棵树由终结符和非终结符构成的句法树. 依存句法分析(Dependency Parsing):分析句子中 ...
- Python设计模式-解释器模式
Python设计模式-解释器模式 代码基于3.5.2,代码如下; #coding:utf-8 #解释器模式class PlayContext():play_text = Noneclass Expre ...
- 超全的设计模式简介(45种)
设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用.设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案.这些解决方案是众多软件开发人员经过 ...
- java 范式 问号_巴科斯范式和扩展巴科斯范式
巴科斯范式(也称为巴科斯-瑙尔范式.巴克斯-诺尔范式)即 BNF 是一种用于表示上下文无关文法的语言,上下文无关文法描述了一类形式语言.尽管巴科斯范式也能表示一部分自然语言的语法,它还是更广泛地使用于 ...
- 精读《手写 SQL 编译器 - 文法介绍》
1 引言 文法用来描述语言的语法规则,所以不仅可以用在编程语言上,也可用在汉语.英语上. 2 精读 我们将一块语法规则称为 产生式,使用 "Left → Right" 表示任意产生 ...
- 编译原理:全片知识难点总结
目录 一.概念 二.词法分析 三.自上而下分析语法--LL语法 1)消除左递归 2) 消除回溯.提左因子 . FIRST集 和 FOLLOW 集 3)预测分析法 与 FIRST集 和 FOLLOW ...
最新文章
- 《Ansible权威指南 》一 第一篇 Part 1 基础入门篇
- 【机器学习】SVM学习(三):线性分类器的求解
- codevs 爱改名的小融
- jMatter:提高开发速度10倍!
- 麦克劳林展开式_数学家麦克劳林与牛顿的故事
- SpringBoot整合Redis入门
- 平板电脑有哪些品牌_平板电脑充电柜使用要注意哪些?安和力
- Java开发遇到的问题及解决方案
- matconvnet在MATLAB2013配置过程中遇到的问题
- JAVA理财管理系统(JAVA 毕业设计)
- gp数据库运维:远程登录 杀进程
- python读取定位_如何使用python定位和读取Data Matrix代码
- rn源码ios_携程开源RN开发框架CRN
- 计算机组装慕课平台,计算机组装与维修
- CISCO 服务器配置 RAID 指南及安装操作系统
- 机器学习(二)线性模型——线性回归、对数几率回归、线性判别分析
- 写代码到底应该买什么键盘?
- leetcode sql:游戏玩法分析 III
- 决策理论与方法——效用函数
- 三维重建 几何方法 深度学习_三维重建算法综述|传统+深度学习方式