- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* * * * * * * * 第2章(补充) * Grammar Language * 文法的例子(1) G1 = ({S1}, {a, b}, S1, P) 其中 P = {S1 ? aS1b , S1? ab} 下面是一些句子的例子: S1 ? ab by S1? ab; S1 ? aS1b by S1 ? aS1b ? aabb = a2b2 by S1? ab …… * Grammar Language * 文法的例子(1) G1 = ({S1}, {a, b}, S1, P) 其中 P = {S1 ? aS1b , S1? ab} 易知 L(G1) = {anbn | n 0 }. 如何证明? 证明两个集合相等,应该做: 1. 证明 G1中所推导的任意串都有anbn的形式; 2. 证明每一个形如 anbn的串都能从 G1推导而来。 * Grammar Language * 证明 L(G1) ={anbn | n 0} 证明: 首先对推导的每一步利用归纳法证明 ?x ? L(G1) 都形如 anbn : 归纳法 1. 一步: S1 ? ab. 显然是正确的。 2. 假设对任意的k 步, k n也是正确的。 3. 下面看n步的推导,有: S1 ?n–1 an–1S1bn–1 (用 n–1 次S1 ? aS1b) ? an–1abbn–1= anbn (用 S1 ? ab ) 由此得证 ?. ?得证! * Grammar Language * 证明 L(G1) ={anbn | n 0} 证明: 然后证明任意一个形如anbn的串x都能用G1的产生式推导出来。对x的长度进行归纳证明 : 1. |x| = 2: S1 ? ab. 显然是正确的。 2. 假设对于|x| = 2k 2n 是正确的; 3. 设 |x| = 2n. 于是 x是 anbn. 有: S1 ?aS1b 且 S1?* an–1bn–1 (因为 |an–1bn–1| 2n). 得到S1 ?aS1b ?* aan–1bn–1b = anbn 于是 ? 部分得证,整个证明完成。 * Grammar Language * 文法的例子(2) G[S2] : S2 ? a S2 b | A A ? a A | a 文法的核心是产生式集。因此用产生式集合足以代表文法。可以用 G[S] 来指明开始符号, 将 S ? ? 或 S ? ? 简写为 S ? ? | ?. * Grammar Language * 文法的例子 (2) G[S2] : S2 ? a S2 b | A A ? a A | a 文法 G[S2] 与 G1是不同的 : S2 ?n anS2bn ? anAbn ? anakbn, k 0. A至少能推导出一个a 于是L(G[S2]) = {ambn | m n ≥ 0} 请自己证明! * Grammar Language * 标识符文法 表示标识符的文法 G[id]为: id ? letter | id letter | id digit letter ? a | b| … |z digit ? 0 | 1| … |9 显然,文法句子都是以符号开始的由符号和数字组成的符号串。 * Grammar Language * 文法的等价性 给定两个文法 G1 和 G2, G1 和 G2 是等价的,当且仅当G1 和 G2 所产生的语言是相等的。 即 G1 ? G2, 当且仅当 L(G1) = L(G2). 例如, G[A]:A?aR | ab,R?Ab。 易证 L(G[A]) = {anbn | n 0}. 于是有 G[A] ? G[S1]. * Grammar Language * 设计文法 问题: 设计文法 G[S],使得: L(G[S]) = {w | w 中a和b的个数相等} The grammar is G[S1], isn’t it? Where G[S1]: S1 ? aS1b | ab No! For L(G[S1]) = {anbn | n 0} is a proper subset of L(G[S]). Lots of sentences can’t be derived by G[S1], for example “ab
原创力文档


文档评论(0)