形式语言与自动机_课件_陈有祺第02章 文法的一般理论.ppt

形式语言与自动机_课件_陈有祺第02章 文法的一般理论.ppt

  1. 1、本文档共66页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二章 文法的一般理论 问题的提出 形式文法与形式语言 文法的乔姆斯基分类 巴科斯—瑙尔范式 例2.1 在类PasCal语言中,语句是用下述一组规则定义的: 语句::=条件语句∣当语句∣复合语句∣赋值语句 条件语句::= iF布尔表达式tHEn语句ElsE语句 当语句::= wHilE布尔表达式Do语句 复合语句::=bEGin语句表EnD 语句表::=语句∣语句;语句表 赋值语句: :=变量:=算术表达式 布尔表达式: :=算术表达式关系运算符算术表达式 关系运算符: := | |≦∣≧∣=∣≠ 算术表达式: :=常量|变量|(算术表达式算术运算符算术表达式) 算术运算符: := +|-|*|/ 常量: := 0|1|2|3|4|5|6|7|8|9 变量::= a|b|C|D|E|F|G|H|i|j|k|l|m|n|o|p|q|r|s|t|u|v|w|x|y|z 以上这种表示法称为巴科斯—瑙尔范式(BaCkus-Naur Forms),简记为BNF。 问题的提出 例2.2 根据例2.1中的各规则,我们指出下述的字符串 wHilE x≤5 Do x := (x+2) 是一个合法的语句。 它符合当语句的结构; x≤5是布尔表达式的一种; x := (x+1)是赋值语句的一种(从而也是语句的一种); 语句的语法树 分析过程 从树根语句到下一层当语句,是用了第一条规则—当语句是语句的一种。 以当语句为根具有四个孩子结点wHilE、布尔表达式、Do、语句的这棵子树,是由当语句::= wHilE布尔表达式Do语句这条规则而来。 以布尔表达式为根具有三个孩子结点算术表达式、关系运算符、算术表达式的这棵子树,是由规则布尔表达式::=算术表达式关系运算符算术表达式而来。 对于算术表达式,赋值语句等为根的子树也是这样逐层画出来的,直到所有叶结点都是构成语言的基本符号为止。 形式文法与形式语言 定义2. 1 一个文法G是一个四元组 G = ( V, T, P, S ), 其中 V是变元的有限集。 T是终结符的有限集。 P是产生式的有限集,其中每个产生式都是α→β的形式,其中α∈(V∪T)+,且其中至少有一个V中的符号,β∈(V∪T)*。α称为产生式的左部,β称为产生式的右部。 S∈V,称为文法G的开始符号。 形式文法与形式语言 例2.4 下面的各四元组都是文法。 G1 = ({A, B}, {0,1},{A→0B, B→1B, B→0}, A)。 G2 =( {A,B,C},{a,b,C},{A→aBC, B→b, C→CC, C→ε}, A)。 G3=( {L,M,N}, {0,1,2}, { M→0LN, L→1, 0L→2, LN→12,N→0},M)。 示例分析 在 G1中,有两个变元A,B,有两个终结符号0,1,有三个产生式,开始符号为A。 在G2中,有三个变元A,B,C;有三个终结符号a, b, C;有四个产生式,其中第四个产生式C→ε的右部为空串ε,这是符合产生式定义的,但这是一种特殊情况;开始符号为A。 在G3中,有三个变元L,M,N;有三个终结符号0,1,2 ;有五个产生式,其中第三和第四个产生式的左部都含有两个符号,这也是符合产生式定义的,因为左部α可以是由变元和终结符组成的字符串;开始符号为M。 形式文法与形式语言 例2.5 对例2.3 中 给出的文法用定义2. 1加以规范化。其四元组表示就是: ({SEntEnCE,Noun pHrasE,DEtErminEr,Noun, VErb pHrasE, VErb}, {tHE, a, applE, Cat, man, Eats, sinGs, runs}, {SEntEnCE→Noun pHrasEVErb pHrasE, Noun pHrasE→DEtErminErNoun, DEtErminEr→tHE, DEtErminEr→a, Noun→applE,Noun→Cat,Noun→man, VErb pHrasE→VErbNoun pHrasE, VErb pHrasE→VErb, VErb→Eats,VErb→sinGs,VErb→runs}, SEntEnCE) 示例分析 其中第一组为变元,共6个; 第二组为终结符,共7个; 第三组为产生式,共12个; 第四个位置是开始符号SEntEnCE(句子)。 开始符号是很重要的,因为它决定这组规则最终要定义什么。 开始符号写SEntEnCE,表示我们要用这组规则定义英语中的句子。如果开始符号写Noun pHrasE,虽然前面三组内容不变,那么只能定义名词短语。如果开始符号写VErb,只能定义动词。 方法示例约定 凡有关文法的例子,都

文档评论(0)

朋友你好 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档