编译原理:上下文无关文法
文章目录
- 前言
- 一、上下文无关文法的组成
- 二、例子
- 1.分析
- 2.巴特斯范式(BNF)
- 3.简写
- 总结
前言
学习编译原理的上下文无关文法
一、上下文无关文法的组成
上下文无关文法是编译原理中一种句子分析的方式,是在将句子划分为主谓宾,代词、冠词、名词等词性基础上的进一步抽象,方便对句子进行进一步分析,以下是上下文无关文法的组成:
- 终结符集合(VT):VT代表终结符集合,非空,其中的每个元素称为终结符(Terminal),如英语语法中的She、He、Me,在文法中终究符是不可分割的
- 非终究符集合(VN):VN代表非终结符集合,同样非空,其中的非终结符是可以进行分割的,如英语语法中的句子、主语、谓语等,都是可以分解再定义的;一个字符不是既是非终结符又是终结符
- 开始符号(S):文法的开始符号,记为S,代表程序最终感兴趣的语法单位,如对于句子来说,最终感兴趣的内容就是句子的主语了
- 有限产生式集合(P):每个产生式,左边是非终结符P,右边是由终结符和非终结符组成的串,左边是被定义的句法单位,右边是构成这个句法单位的组合
- 文法的有意义的规定,开始符S起码在句子左边出现一次
二、例子
1.分析
简单起见,这里选用只有+号和*号的式子进行描述
G为四元组:
其中i,+,*,()等五个字符组成终结符集合,i为identify的首字母,表示标识符
{E}中的E代表表达式(Expression)
E也代表唯一的非终结符
P包含四个产生式:
1.E->i:一个表达式可以由一个标识符充当
2.E->E+E:一个表达式可以由两个较小的子表达式组合形成
3.E->EE:一个表达式可以由两个较小的子表达式通过连接而成
4.E->(E):一个表达式可以由一个子表达式+括号构成
2.巴特斯范式(BNF)
3.简写
如上文中提及的文法,可先简写为如下形式
总结
上下文无关文法,是描述文法的一种方法,一般描述文法时候,非终结符用大写表示,而终结符用小写字母表示,以方便辨认和区分。
编译原理:上下文无关文法相关推荐
- 《编译原理》-3.上下文无关文法及分析
上下文无关文法及分析 3.1 分析过程 3.2 上下文无关文法 3.2.1 与正则表达式的比较 3.2.2 上下文无关文法规则的说明 3.2.3 推导及由文法定义的语言 3.3 分析树与抽象语法树 3 ...
- 【编译原理】什么是上下文无关文法?
上下文无关是指,一句话的含义与其前后的内容没有或者几乎没有关系,只由自己决定,把它剪切到其他任何位置,也还是原有的意思. 例如: ... a = 0; ... 这是一个赋值语句,无论此语句的前后是什么 ...
- 上下文无关文法的分析树(Context-Free Grammar, CFG)的分析树--编译原理
上下文无关文法的分析树(Context-Free Grammar, CFG)的分析树 分析树 根节点的符号为文法开始符号S 每个内部节点都是对某个产生式A→β的应用,该节点的标号就是产生式的左部,子节 ...
- 【编译原理】构造产生如下语言的上下文无关文法各一个:
13.构造产生如下语言的上下文无关文法各一个: (1) (an bm c2m | n,m≥0 } S->AB A->ε|aA B->ε|bBcc (2) w c wR| w∈{a,b ...
- 编译原理四种文法的理解补充
如果你是学习,给定一个文法,判断是哪一个文法的话,那这篇不是讲这个,只是一点小小的理解补充. 四种文法如下: 补充: 1.0型文法,即递归可枚举文法相当于图灵机是指: 给定一个文法G,一个句子g,如果 ...
- 编译原理之形式语言文法分类
高级程序设计语言的三个基本因素: 语法:描述语言成分的构成规则(包括词法规则和语法规则) 语义:描述语法成分的含义 语用:描述语法成分的使用方法 形式语言理论(formal language theo ...
- 句法模式识别(两)-正规文法、上下文无关文法
正规的语法特点 1.全部长度有限的语言都是正规的. 2.用正规文法当然能产生无限长串,当中周期反复部分的长度不大于非终止符的长度. 举个样例 在此规则之下.能生成句子 当中周期反复部分为ab,这个样例 ...
- 【编译原理】关于文法形式化定义的探索
文章目录 1 文法的概念 2 符号和符号串的定义 3 文法的形式化定义 3.1 终结符 3.2 非终结符 3.3 P&&S 1 文法的概念 每一种自然语言或者是编程语言都需要文法来描述 ...
- 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 2 ) ★★
文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 2 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...
- 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★
文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 1 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...
最新文章
- 黑客进阶必读书《Linux命令行与Shell脚本编程大全》(第2版)
- PHP菜刀工具WebHandler
- 成功解决.ReadTimeoutError: HTTPSConnectionPool(host=‘pypi.tuna.tsinghua.edu.cn‘, port=443): Read timed o
- Druid 配置_StatFilter
- 通用计算机有哪四个部分,计算机硬件由哪几部分组成?各部分的作用是什么?...
- JVM空间申请流程图
- 阿里云IoT Studio升级版新增解决方案引擎 大幅提升方案交付效率
- 大数据做基础 构建流动人口健康屏障
- 三行条形码打印样式设计 html,条形码生成及打印(JsBarcode)
- 常用大部分渗透工具下载
- 进程调度算法(c语言)
- √【物流网络规划】库存和仓储 warehouse
- (上)苹果有开源,但又怎样呢?
- 从后端到前端的转变:如何选择框架?
- 模电学习笔记(八)——差分放大器
- 如何查看AD域账号的删除记录
- 谈谈在项目过程中的发生争论与争吵
- oracle索引介绍之位图(bitmap)索引
- NC用友启动服务异常
- MicroLab专业的嵌入式开发调试工具集免费试用
热门文章
- html js实现分页代码,js分页代码示例
- windows 10下解压.gz后缀文件
- 将EXCEL自定义时间格式转换为时间格式
- 原神九宫格拼图游戏ES6+bootstrap+cookie
- 微型计算机中NOP指令,PLC指令表
- Android之应用市场排行榜、上架、首发(非原创)
- Linux基础——Web(三)Nginx反向代理2
- Maven命令安装JAR包到本地仓库
- 代理 傲澜智伴机器人_机器人厂家_智伴机器人代理,莆田智伴机器人,傲澜智伴机器人(查看)_一呼百应网...
- 一套新能源汽车动力电池热管理热仿真攻略