您的位置:首页 > 其它

编译原理-文法

2014-04-30 12:33 232 查看

1、文法的定义

描述语言的语法结构的形式规则称为文法。(组合成语言的规则)

2、文法的基本形式

α→β

终结符(a,b,c,…..) )和非终结符(A,BC,D,….):

终结符具有原子性,不可再分。非终结符,可以再分。

非终结符(程序)->终结符(语句)

终结符不可以单独出现在α中;

3、文法组成

文法G是一个四元组,可表示为GVT,VN,S,P)。

VT(terminal symbol是一个非空有限集,每个元素称为终结符。

VN(nonterminal symbol是一个非空有限集,每个元素称为非终结符,它是不能单独在左边的。

S是一个非终结符,称为开始符号;它至少要在一条产生式中作为左部出现。

P是一个产生式集合(有限)。

以下图体会一下文法的组成:



4、文法中的四种类型

认识四种文法



文法之间的关系



0型文法是限制最小的文法,其他的一级比一级严格;也就是说满足3型文法一定满足0型、1型、2型文法,2型文法满足前两种文法,以次类推。



文法举例

0型文法:


例:A→a,Aa→a,aA→a(左边至少有一个大写字母)

1型文法:

例:A→a,A→ab,Aa→BAc

注意:α→ε也满足1型文法。

2型文法:

例:A→a,A→ab,A→BAc(在1型文法的前提下,左边必须都是大写字母)

3型文法:

例子1: A→a,A→aB,B→a,B→cB,符合。

例子2:A→ab,A→aB,B→a,B→cB或推导为:A→a,A→Ba,B→a,B→cB ?

结果:都不是3型文法。


更正: A→a,A→aB,B→a,B→cB符合。

A→a,A→aB,B→a,B→cB 或A→a,A→Ba,B→a,B→Bc 符合

5、小结

一、

一个文法中要么符合左线性,要么符合右线性,两套规则不能同时出现在一个语法中

二、

1)一个产生式推出的非终结符只能有一个;2)如果是一个文法中,非终结符要么都在右边的右边,要么都在右边的左边。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: