上下文无关文法

上下文无关文法 G 是一个四元组 G = (VN , VT , S, £), 其中

VN :非终结符的非空有限集合

VT :终结符的非空有限集合, VN ∩ VT = Φ

S: 开始符号,且S∈ VN

£ :形式为 P→α的产生式的有限集合, 且 P∈VN ,α∈ (VN∪VT )*

文法组成

上下文无关文法由一组终结字符,一组非终结字符,一个开始字符,一组产生式组成

终结符号:描述单词符号,组成语言的基本符号,是一个 语言的不可再分的基本符号。

非终结符:代表语法范畴,一个非终结符代表一个一定的 语法概念,每个非终结符表示一定符号串的集合。

开始符号,一个特殊的非终结符号。

产生式:又叫产生规则或规则 ,是定义语法范畴的一种 书写规则. 形式如:A→α

示例

语法规则 :

以这句The grey will eat wolf goat.为例 (红色代表开始符号,蓝色代表非终结符号,橙色代表终结符号)

<句子>—><主语><谓语>

<主语>—><冠词><形容词><名词>

<谓语>—><动词><直接宾语>

<动词>—><助动词><动词原形>

<直接宾语>—><冠词><名词>

<冠词>—>The

<形容词>—>grey

<助动词>—>will

<动词原形>—>eat

<名词>—>wolf

<名词>—>goat

产生式是指任意一行推导的式子

示例中可以看出非终结符都在箭头的左侧,终结符都在箭头的右侧,所以很好区分非终结符和终结符,非终结符是能够继续再分的符号串的集合,而终结符不可再分。可以这样记,产生式左侧的符号一定是非终结符,因为都能推导出新的单词符号,终结符因为不能继续推导,所以只能出现在产生式的右侧,而产生式的右侧可能是终结符也可能是非终结符,开始符是非终结符的一个特例,只能在文法中出现一次。

以上就是本人的理解,如有错误,欢迎指正!

上下文无关文法的组成相关推荐

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

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

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

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

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

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

  4. 【计算理论】计算理论总结 ( 下推自动机计算过程 | 上下文无关文法 CFG 转为下推自动机 PDA ) ★★

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

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

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

  6. 上下文无关文法及其分析树

    上下文无关文法是程序设计语言所使用的语法.它的特点是同样的字符串在不同的语境下,意思不变.满足上下文无关文法的语言便于计算机识别和处理.我们已经介绍过,语言是语句的集合,而语句是通过产生式定义的.上下 ...

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

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

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

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

  9. python语言平台无关_从零开始学Python自然语言处理(十二)——上下文无关文法...

    前文传送门: 在说上下文无关文法之前,我们来看看形式语言理论,什么是形式语言理论?形式语言理论形式语言理论是用数学方法研究自然语言或者程序设计语言的理论.研究语言组成规则,而不研究语言的具体含义.说到 ...

  10. 形式语言与自动机——第三章 上下文无关文法与下推自动机

    文章目录 3.1 推导树与二义性 3.2 上下文无关文法的改写 3.2.1 CFG的最简化 3.2.2 CFG的变换 3.2.2.1 去除可零化的非终结符 3.2.2.2 去除单产生式 3.2.2.3 ...

最新文章

  1. 了解大数据的特点、来源与数据呈现方式
  2. C#选择目录对话框FolderBrowserDialog
  3. 121.应用层有什么协议,作用是什么?
  4. LabviewRS232串口通信数据格式问题解析
  5. 初探ES6(1)...
  6. spring python负载均衡_Spring Cloud:使用Ribbon实现负载均衡详解(上)
  7. 微信抢红包算法 java_java 实现仿照微信抢红包算法,实测结果基本和微信吻合,附demo...
  8. Navicat 连接 Oracle数据库并,导入数据泵(.dmp)
  9. Linux Vim快捷键
  10. 马化腾惊现Leetcode每天刷题?为啥大佬都这么努力!
  11. 【Qt】边学边写之Qt教程(零基础)
  12. html把图片放到文章右边,怎么在文章中把图片放在文字的左边、右边、中 – 手机爱问...
  13. s鼠标在计算机哪部分里,罗技g602和g700s哪个好_罗技g602鼠标怎么样【详细介绍】-太平洋IT百科...
  14. JVM 类加载器(引导类加载器、扩展类加载器、系统类加载器、用户自定义类加载器)
  15. 使用iperf测试网络性能
  16. 企业智能化转型meetup回顾|开源BI AI助力企业转型之旅三阶段
  17. 信息孤岛影响_OKR如何打破组织的孤岛
  18. POS--权益证明机制
  19. python获取数组长度_Python返回数组(List)长度的方法
  20. Android 开发需要了解的TCP/IP和Http知识

热门文章

  1. PySide6精简教程
  2. 零基础学模拟电路--2.运算放大器的虚短和虚断
  3. 【千律】C++基础:使用动态数组vector初始化自定义类
  4. 2020年Spring学习笔记目录
  5. 中国地图流动图(一)
  6. linux蓝牙主从机模式代码,技术贴 丨 Android 蓝牙BLE开发Docker入门与WMS2.0实例
  7. MAX485芯片收发详解 实现485通信
  8. catia二次开发:IDE界面介绍
  9. Exadata一体机故障回顾
  10. 深度学习在语音识别中的算法、应用、数据集、行业分析