(04)第一章第二讲文法及文法的分类.ppt

第一章 语 言 及 文 法 第二讲 文法及文法的分类 一、文法的形式定义 问题:若语言L是有限集合时,最简单的表示方法就是枚举法;但当L是无限集合时,则有什么方法可以完整地描述或表达语言L呢? 方法一:给出一个文法,该文法定义了一个语言的数学模型,该数学模型给出一组产生语言句子的产生规则。 方法二:给出一个识别系统,该识别系统能识别语言的句子,当一个字符串能被该识别系统接受时,则该字符串是该语言的句子。 一、文法的形式定义 1. N是非终结符的有限集合; 2. T 是终结符的有限集合;且 N∩T=Φ ; 3. P是形式为α→β的生成式的有限集合,且 α∈ (N∪T) + , β∈(N∪T) * , 且α至少 含有一个非终结符号; 4. S是起始符,且S∈N。 其中:α→β读做“α可被β替换”或“α可产生β”。 定义1 ( 0型)文法G是一个四元组, G=(N,T,P,S), 其中: 一、文法的形式定义举例 例2:设文法G2=({A,B,C} ,{a,b,c} , P , A), 生成式P如下: A→abc, A→aBbc , Bb→Bb , Bc→Cbcc , bC→Cb , aC→aaB , aC→aa 显然,G2也是一个0型文法。 例1:设文法G1=(N,T,P,S),其中: N={A,B},T={ a},生成式如下: S→a , S→Aa , A→aS 显然,G1是一个0型文法。 一、文法的形式定义举例 标识符∷=字母 标识符∷= 标识符字母 标识符∷= 标识符数字 字母∷= a|b|c|…|y|z 数字∷= 0|1|2|…|8|9 例3: 在某个程序语言中,标识符的集合是以字母开头,后面跟若干字母或数字的字符串的集合。标识符的形式定义为: 巴科斯范式 一、文法的形式定义举例 标识符∷=字母 标识符∷= 标识符字母 标识符∷= 标识符数字 字母∷= a|b|c|…|y|z 数字∷= 0|1|2|…|8|9 从形式语言的角度来看,该集合可视为一种语言:用I代替标识符,用L代替字母,用D代替数字,用→代替∷=。则可构造如下0型文法G: G=(N,T,P,S); 其中: N={I,L,D}; T={a,b,c,…,z,0,1,…9}; S=I 一、文法的形式定义举例 I→L 标识符∷= 标识符字母 标识符∷= 标识符数字 字母∷= a|b|c|…|y|z 数字∷= 0|1|2|…|8|9 从形式语言的角度来看,该集合可视为一种语言:用I代替标识符,用L代替字母,用D代替数字,用→代替∷=。则可构造如下0型文法G: G=(N,T,P,S); 其中: N={I,L,D}; T={a,b,c,…,z,0,1,…9}; S=I 一、文法的形式定义举例 I→L 标识符∷= 标识符字母 标识符∷= 标识符数字 字母∷= a|b|c|…|y|z 数字∷= 0|1|2|…|8|9 从形式语言的角度来看,该集合可视为一种语言:用I代替标识符,用L代替字母,用D代替数字,用→代替∷=。则可构造如下0型文法G: G=(N,T,P,S); 其中: N={I,L,D}; T={a,b,c,…,z,0,1,…9}; S=I 一、文法的形式定义举例 I→L I→I L 标识符∷= 标识符数字 字母∷= a|b|c|…|y|z 数字∷= 0|1|2|…|8|9 从形式语言的角度来看,该集合可视为一种语言:用I代替标识符,用L代替字母,用D代替数字,用→代替∷=。则可构造如下0型文法G: G=(N,T,P,S); 其中: N={I,L,D}; T={a,b,c,…,z,0,1,…9}; S=I 一、文法的形式定义举例 I→L I→I L I→I D 字母∷= a|b|c|…|y|z 数字∷= 0|1|2|…|8|9 从形式语言的角度来看,该集合可视为一种语言:用I代替标识符,用L代替字母,用D代替数字,用→代替∷=。则可构造如下0型文法G: G=(N,T,P,S); 其中: N={I

文档评论(0)

1亿VIP精品文档

相关文档