码迷,mamicode.com
首页 > 其他好文 > 详细

软件构造的四种文法的简单区分

时间:2019-11-23 20:27:00      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:注意   log   方法   cup   规则   四种   上下   art   基础上   

文法

文法G定义为四元组(VN ,VT ,P,S)

VN :非终结符集,通常用大写字母表示
VT : 终结符集,通常用小写字母表示
P :产生式集合(规则集合)
S :开始符号(识别符号)

提示:下面例子中的大写字母表示的是非终结符,而小写字母表示的是终结符。
1.      0型文法(短语)
设G=(VN,VT,P,S),如果它的每个产生式α→β是这样一种结构:α∈(VN∪VT)*且至少含有一个非终结符,而β∈(VN∪VT)*,则G是一个0型文法。0型文法是这几类文法中,限制最少的一个,所以我们在试题中见到的,至少是0型文法。
0型文法相当于图灵机。
2.    1型文法(上下文有关文法)

它是在0型文法的基础上每一个α→β,都有|β|>=|α|。这里的|β|表示的是β的长度。
1型文法相当于线性有界自动机。
例子:如有A->Ba则|β|=2,|α|=1符合1型文法要求。反之,如aA->a,则不符合1型文法。
特例:α→ε也满足1型文法。
3.    2型文法(上下文无关文法)
2型文法是在1型文法的基础上,再满足:每一个α→β都有α是一个非终结符。如A->Ba,符合2型文法要求。
2型文法相当于下推自动机。
例子:Ab->Bab虽然符合1型文法要求,但不符合2型文法要求,因为其α=Ab,而Ab不是一个非终结符。A->Bab就对啦
4.    3型文法(正规文法)
它是在2型文法的基础上满足:A→α|αB(右线性)或A→α|Bα(左线性)。
3型文法相当于有限状态自动机。
注意:3型文法中只能满足右线性,或只能满足左线性,不能两种同时都有
例子:A->a,A->aB,B->a,B->cB,则符合3型文法的要求。但如果推导为:A->ab,A->aB,B->a,B->cB或推导      
为:A->a,A->Ba,B->a,B->cB则不符合3型方法的要求了。
https://blog.csdn.net/songsong189/article/details/48768819

软件构造的四种文法的简单区分

标签:注意   log   方法   cup   规则   四种   上下   art   基础上   

原文地址:https://www.cnblogs.com/xuange1/p/11919196.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!