解读上下文无关文法

何谓上下文无关文法

走一段百度百科的概念:
在这里插入图片描述

简单理解

上下文无关文法即是把一个句子揉碎,分为4个部分

  • 非终结符集合:指的是一个句子中不同类型的的短语和子句。
  • 终结符集合:终结符指的是构成文法的最基本的字符,比如名词、动词等。
  • 产生式:上面百度百科概念公式概括得很准确,指的是一个句子或者子句的产生规则的集合。
  • 开始符号:S是唯一的开始符号,是非终结符的一份子,用来表示整个句子。

走个句子

例如:小坨喝可乐(S)

该句子的结构为
主语谓语宾语
名词:

  • N1:小坨
  • N2:可乐

动词(V):喝

该句子分析树在这里插入图片描述
以下对该句子进行形式化分析:

非终结符集合V = S、N1、N2、V
终结符集合∑ = 小坨、喝、可乐

产生式集合为:
S -> NVN
N -> 小坨 | 可乐
V -> 喝

对该句子反复使用产生式,将产生式左部的非终结符转换为右部的文法符号序列,直到产生一个终结符的序列为止进行最左推导得到推导过程:
S => N1VN2 => 小坨VN2 => 小坨喝N2 => 小坨喝可乐

最左推导:每次总是选择最左侧的符号进行替换,即对于上例中的 N1 V N2 ,首先替换最左边的 N1, 再替换之后最左侧的非终结符 V, 最后替换最有一个非终结符N2。最右推导反之

走个题目加深理解
在这里插入图片描述

参考资料

词法分析——上下文无关文法和推导
现代编译原理--第二章(语法分析之上下文无关文法)

发布了29 篇原创文章 · 获赞 11 · 访问量 4131

猜你喜欢

转载自blog.csdn.net/atuo200/article/details/104090533
今日推荐