先来看看上下文无关文法, 总的来说上下文无关文法的定义如图 :

BNF范式(Backus-Naur Form)经常用来表示上下文无关文法...

接下来提出一个概念叫推导 :

推导有两种, 最左推倒和最右推倒 :

那么其实词法分析的目的就可以用这个上面我们所提到的上下文无关文法来描述了 :

下面是一道题 :

正则文法

在课程中我们讨论了上下文无关文法(即2型文法),并且我们提到了正则文法,并指出它对应于正则表达式。正则文法其实是一类特殊形式的上下文无关文法,它的每条产生式规则只能是下面三种形式之一:

A -> b C

X -> b

Y ->

注意到每一种规则的右部都存在某些约束:第一种形式是说右部只能是终结符跟着非终结符;第二种形式是说右部只能有一个终结符;第三种规则的右部是空。

给定如下的正则表达式

a(b|c)*

试写出它所对应的正则文法.

我的答案 :

S -> aB

B -> bB

 -> cB

    ->

 

posted on 2016-05-12 00:22  内脏坏了  阅读(171)  评论(0编辑  收藏  举报