文章目录

  • 前言
  • 一、上下文无关文法的组成
  • 二、例子
    • 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.简写


如上文中提及的文法,可先简写为如下形式

总结

上下文无关文法,是描述文法的一种方法,一般描述文法时候,非终结符用大写表示,而终结符用小写字母表示,以方便辨认和区分。

编译原理:上下文无关文法相关推荐

  1. 《编译原理》-3.上下文无关文法及分析

    上下文无关文法及分析 3.1 分析过程 3.2 上下文无关文法 3.2.1 与正则表达式的比较 3.2.2 上下文无关文法规则的说明 3.2.3 推导及由文法定义的语言 3.3 分析树与抽象语法树 3 ...

  2. 【编译原理】什么是上下文无关文法?

    上下文无关是指,一句话的含义与其前后的内容没有或者几乎没有关系,只由自己决定,把它剪切到其他任何位置,也还是原有的意思. 例如: ... a = 0; ... 这是一个赋值语句,无论此语句的前后是什么 ...

  3. 上下文无关文法的分析树(Context-Free Grammar, CFG)的分析树--编译原理

    上下文无关文法的分析树(Context-Free Grammar, CFG)的分析树 分析树 根节点的符号为文法开始符号S 每个内部节点都是对某个产生式A→β的应用,该节点的标号就是产生式的左部,子节 ...

  4. 【编译原理】构造产生如下语言的上下文无关文法各一个:

    13.构造产生如下语言的上下文无关文法各一个: (1) (an bm c2m | n,m≥0 } S->AB A->ε|aA B->ε|bBcc (2) w c wR| w∈{a,b ...

  5. 编译原理四种文法的理解补充

    如果你是学习,给定一个文法,判断是哪一个文法的话,那这篇不是讲这个,只是一点小小的理解补充. 四种文法如下: 补充: 1.0型文法,即递归可枚举文法相当于图灵机是指: 给定一个文法G,一个句子g,如果 ...

  6. 编译原理之形式语言文法分类

    高级程序设计语言的三个基本因素: 语法:描述语言成分的构成规则(包括词法规则和语法规则) 语义:描述语法成分的含义 语用:描述语法成分的使用方法 形式语言理论(formal language theo ...

  7. 句法模式识别(两)-正规文法、上下文无关文法

    正规的语法特点 1.全部长度有限的语言都是正规的. 2.用正规文法当然能产生无限长串,当中周期反复部分的长度不大于非终止符的长度. 举个样例 在此规则之下.能生成句子 当中周期反复部分为ab,这个样例 ...

  8. 【编译原理】关于文法形式化定义的探索

    文章目录 1 文法的概念 2 符号和符号串的定义 3 文法的形式化定义 3.1 终结符 3.2 非终结符 3.3 P&&S 1 文法的概念 每一种自然语言或者是编程语言都需要文法来描述 ...

  9. 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 2 ) ★★

    文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 2 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...

  10. 【计算理论】计算理论总结 ( 上下文无关文法 CFG 转为下推自动机 PDA 示例 1 ) ★★

    文章目录 一.上下文无关文法 CFG 转为下推自动机 PDA 流程 二.上下文无关文法 CFG 转为下推自动机 PDA 示例 1 参考博客 : [计算理论]上下文无关语法 ( 语法组成 | 规则 | ...

最新文章

  1. 黑客进阶必读书《Linux命令行与Shell脚本编程大全》(第2版)
  2. PHP菜刀工具WebHandler
  3. 成功解决.ReadTimeoutError: HTTPSConnectionPool(host=‘pypi.tuna.tsinghua.edu.cn‘, port=443): Read timed o
  4. Druid 配置_StatFilter
  5. 通用计算机有哪四个部分,计算机硬件由哪几部分组成?各部分的作用是什么?...
  6. JVM空间申请流程图
  7. 阿里云IoT Studio升级版新增解决方案引擎 大幅提升方案交付效率
  8. 大数据做基础 构建流动人口健康屏障
  9. 三行条形码打印样式设计 html,条形码生成及打印(JsBarcode)
  10. 常用大部分渗透工具下载
  11. 进程调度算法(c语言)
  12. √【物流网络规划】库存和仓储 warehouse
  13. (上)苹果有开源,但又怎样呢?
  14. 从后端到前端的转变:如何选择框架?
  15. 模电学习笔记(八)——差分放大器
  16. 如何查看AD域账号的删除记录
  17. 谈谈在项目过程中的发生争论与争吵
  18. oracle索引介绍之位图(bitmap)索引
  19. NC用友启动服务异常
  20. MicroLab专业的嵌入式开发调试工具集免费试用

热门文章

  1. html js实现分页代码,js分页代码示例
  2. windows 10下解压.gz后缀文件
  3. 将EXCEL自定义时间格式转换为时间格式
  4. 原神九宫格拼图游戏ES6+bootstrap+cookie
  5. 微型计算机中NOP指令,PLC指令表
  6. Android之应用市场排行榜、上架、首发(非原创)
  7. Linux基础——Web(三)Nginx反向代理2
  8. Maven命令安装JAR包到本地仓库
  9. 代理 傲澜智伴机器人_机器人厂家_智伴机器人代理,莆田智伴机器人,傲澜智伴机器人(查看)_一呼百应网...
  10. 一套新能源汽车动力电池热管理热仿真攻略