- 1、本文档共34页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
形式语言与自动机 文法的一般理论解析
* 正则文法 对应G中的产生式S→a1B1,G’中有S→B1a1,对应G中的产生式B1→a2B2,G’中有B1→B2a2 ,…, 对应G中的产生式Bn-2→an-1Bn-1 , G’中有Bn-2→Bn-1an-1 , 对应G中的产生式Bn-1→anBn ,G’中有Bn-1→Bnan 。至于G中的产生式Bn-1→an和Bn→ε,G’中也有同样的产生式。 S B1a1 (用产生式S→B1a1) B2a2a1 (用产生式B1→B2a2) ┆ Bn-1an-1…a2a1 (用产生式Bn-2→Bn-1an-1) anan-1…a2a1 (用产生式Bn-1→an) 或者有 Bn-1an-1…a2a1 Bnanan-1…a2a1 (用产生式Bn-1→Bnan) anan-1…a2a1 (用产生式Bn→ε) 所以总起来有 S anan-1…a2a1=xR ,即xR ∈L(G’)。 * 南京航空航天大学计算机学院 胡军 * 正则文法 另一方面,设x=a1a2…an∈L(G′),要证xR =an…a2a1∈L(G)。 对于n≤1,根据与前面同样的理由,结论显然成立。 对于n≥2,在G′中要用一系列直接推导 S B1an (用产生式S→B1an) B2an-1an (用产生式B1→B2an-1) ┆ Bn-1a2…an-1an (用产生式Bn-2→Bn-1a2) a1a2…an-1an (用产生式Bn-1→a1) 或者有 Bn-1a2…an-1an Bna1a2…an-1an (用产生式Bn-1→Bna1) a1a2…an-1an (用产生式Bn→ε) * 南京航空航天大学计算机学院 胡军 * 正则文法 G中产生式是G′中产生式的唯一来源,因此,在G中也有一系列直接推导 S anB1 (用产生式S→anB1) anan-1B2 (用产生式B1→an-1B2) ┆ anan-1…a2Bn-1 (用产生式Bn-2→a2Bn-1) anan-1…a2a1 (用产生式Bn-1→a1) 或者有 anan-1…a2Bn-1 anan-1…a2a1Bn (用产生式Bn-1→a1Bn) anan-1…a2a1 (用产生式Bn→ε) 这也就是 S anan-1…a2a1=xR 。即xR ∈L(G)。 总之,我们有L(G′)= L(G)R 。定理证完。 * 南京航空航天大学计算机学院 胡军 * 课后要求 习题:(P.40) 2.3 (使用数学归纳法对串长证明) 2.4 (1),(2),(3),(4) 2.5 * 南京航空航天大学计算机学院 胡军 本质上就是嵌套的递归结构,但是要注意解释:递归规则的原本应用是从右边到左边,但是在语言、字符串这个场景下,可以很容易看作从左边到右边的推导和产生的过程。! 在这种表示法中,用尖括号“”和“”括起来的部分,做为一个整体来看,表示一种语法成分,最终要用具体的字符串集合来定义它,如常量、变量、赋值语句等等。 符号“::=”和“∣”是BNF本身使用的符号,前者含有“就是”的意思,后者含有“或者”的意思。例如定义的常量就是0,或者1,或者2,或者3,…,或者8,或者9这十个阿拉伯数字。 其他的符号如:iF,tHEn,ElsE,;,:=,,,+,-,*,/,a,b,C,x,y,z,等等都是构成语言的基本符号,也就是字母表中的符号。 第五条规则关于语句表的定义,这是一种递归的定义形式。 要重点说明:自顶向下和自底向上的过程不同,就是对递归规则的不用应用。 从树根语句到下一层当语句,是用了第一条规则—当语句是语句的一种。 以当语句为根具有四个孩子结点wHilE、布尔表达式、Do、语句的这棵子树,是由当语句::= wHilE布尔表达式Do语句这条规则而来。 以布尔表达式为根具有三个孩子结点算术表达式、关系运算符、算术表达式的这棵子树,是由规则布尔表达式::=算术表达式关系运算符算术表达式而来。 对于算术表达式,赋值语句等为根的子树也是这样逐层画出来的,直到所有叶结点都是构成语言的基本符号为止。 符号“→”与BNF中的“::=”是一样的意思,为简单起见,以后都用这个符号。其余符号的意义与例2.2中相同,这里tHE, applE, Eats 等英语单词是组成
文档评论(0)