《语法分析-IV》PPT课件.ppt_第1页
《语法分析-IV》PPT课件.ppt_第2页
《语法分析-IV》PPT课件.ppt_第3页
《语法分析-IV》PPT课件.ppt_第4页
《语法分析-IV》PPT课件.ppt_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译原理和技术 大连理工软件学院胡彦huyan ssdut 本讲纲要 回顾重点 FIRST集 FOLLOW集自上而下分析实现递归函数法非递归的预测分析方法 FOLLOW集计算 文法 S BAA BS dB aA bS c 初始状态 FOLLOW S FOLLOW A FOLLOW B FIRST B a b c FIRST A a b c d FIRST S a b c FOLLOW集计算 文法 S BAA BS dB aA bS c 第1步 FOLLOW S FOLLOW S FOLLOW A FOLLOW B FIRST B a b c FIRST A a b c d FIRST S a b c FOLLOW集计算 文法 S BAA BS dB aA bS c 第1步 FOLLOW S FOLLOW S FOLLOW A FOLLOW B a b c d 第2步 FOLLOW B FIRST A FOLLOW B FIRST S FIRST B a b c FIRST A a b c d FIRST S a b c FOLLOW集计算 文法 S BAA BS dB aA bS c 第1步 FOLLOW S FOLLOW S FOLLOW A a b c d FOLLOW B a b c d 第2步 FOLLOW B FIRST A FOLLOW B FIRST S FIRST B a b c FIRST A a b c d FIRST S a b c FOLLOW B 中的所有元素都可以加到FOLLOW A 中 FOLLOW集计算 文法 S BAA BS dB aA bS c 第1步 FOLLOW S FOLLOW S a b c d FOLLOW A a b c d FOLLOW B a b c d 第2步 FOLLOW B FIRST A FOLLOW B FIRST S FIRST B a b c FIRST A a b c d FIRST S a b c FOLLOW B 中的所有元素都可以加到FOLLOW A 中 FOLLOW B 中的所有元素都可以加到FOLLOW S 中 本讲纲要 回顾重点 FIRST集 FOLLOW集自上而下分析实现递归函数法非递归的预测分析方法 递归的分析程序 S BAA BS dB aA bS c S B A A if lookahead a b c B S elsematch d B if lookahead a match a A elseif lookahead b match b S elsematch c 本讲纲要 回顾重点 FIRST集 FOLLOW集自上而下分析实现递归函数法非递归的预测分析方法 3 3自上而下分析 3 3 4非递归的预测分析 3 3自上而下分析 3 3自上而下分析 预测分析器接受输入id id id的动作 E id id id E TE E T id id id T FT E T F id id id F id E T id id id id 一个符号被消耗 id id E T Match id T FT E T F id id Match id id E T F 编程作业3 实现表达式文法的递归分析程序 非递归的预测程序 E TE E TE T FT T FT F E id 截止日期 2008 12 6提交方式 代码 文档 发到huyan ssdut 词法分析部分复习 正规式 语言描述语言描述 正规式DFA化简 1 叙述正规式 00 11 01 10 00 11 01 10 00 11 描述的语言 答案 所有由偶数个0和偶数个1构成的串 分析 该正规式的一个重要特点是 它是两个字符一组来考虑的 正规式 00 11 表示的串的长度是偶数 每两个字符一组的话 不是00就是11 再看正规式 01 10 00 11 01 10 它表示的串由01或10开始 中间有若干组00或11 最后出现01或10 这样的串仍然由偶数个0和偶数个1构成 只不过第一组是01或10的话 那么一定还要有一组01或10才能保证它们的偶数性 显然 正规式 01 10 00 11 01 10 00 11 表示的串也仍然是由偶数个0和偶数个1构成 这样 可以判断题目所给的正规式表示的语言的每个句子都是由偶数个0和偶数个1构成 11000011010011000011100110 反过来还需要考虑 任何由偶数个0和偶数个1构成的串是否都在这个语言中 这实际上是问 每个这样的串 其结构是否都符合正规式 00 11 01 10 00 11 01 10 00 11 所做的刻划 我们可以这样叙述由偶数个0和偶数个1构成的串 从左向右 每两个字符一组地考察 它1 由若干个 强调一下 可以是零个 00或11开始 这由正规式 00 11 描述 2 一旦出现一个01或10 那么经过若干个00或11后 一定会出现一个01或10 这第二个01或10的后面可能还有若干个00或11 一直到串的结束 或者到再次出现01或10为止 如果串没有结束的话 就是重复出现这里所描述的结构 所以这由 01 10 00 11 01 10 00 11 描述 因此正规式 00 11 01 10 00 11 01 10 00 11 描述的是偶数个0和偶数个1构成的串 11000011010011000011100110 思考题 奇数个0和奇数个1的串用正规式怎么表示 奇数个0和偶数个1的串呢 偶数个0和奇数个1构成的串有是怎么用正规式表示呢 2 写出语言 所有相邻数字都不相同的非空数字串 的正规定义 答案 no 0 8 9no 0 7 8 no 0 88 no 0 88 no 0 8 no 0 8no 0 6 7 no 0 77 no 0 77 no 0 7 no 0 7no 0 5 6 no 0 66 no 0 66 no 0 6 no 0 6no 0 4 5 no 0 55 no 0 55 no 0 5 no 0 5no 0 3 4 no 0 44 no 0 44 no 0 4 no 0 4no 0 2 3 no 0 33 no 0 33 no 0 3 no 0 3no 0 1 2 no 0 22 no 0 22 no 0 2 no 0 2no 0 1 no 0 11 no 0 11 no 0 1 no 0 1answer 0 no 00 no 00 no 0 no 0 3 将下图的DFA极小化 1 加入死状态2 合并不可区分状态 先把状态集分成非接受状态集 0 1 2 3 5 和接受状态集 4 这两个子集 1 集合 4 不能再分解 我们看集合 0 1 2 3 5 move 0 1 2 3 5 a 1 2 5 move 0 1 2 3 5 b 3 4 5 由于b转换的结果 3 4 5 不是最初划分的某个集合的子集 因此 0 1 2 3 5 需要再分 由于状态1和状态2的b转换都到状态4 因此状态集合的进一步划分是 1 2 0 3 5 和 4 2 由于move 1 2 a 2 5 move 1 2 b 4 move 0 3 5 a 1 5 move 0 3 5 b 3 5 显然 1 2 和 0 3 5 需要再分 分别分成 1 和 2 以及 0 3 和 5 3 由于move 0 3 a 1 move 0 3 b 3 因此不需要再分 这样状态0和状态3合并成一个状态 我们取0为代表 再删去死状态5 就得到该题的结果 正确做法 最初的划分是 0 1 2 3 和 4 1 状态集合的进一步划分是 1 2 0 3 和 4 2 忽略了死状态的影响 会认为它们都不需要再分 错误做法 1 直接合并不可区分状态 E LL 1 文法的自上而下的非递归分析方法理解 深度优先构造分析树 E TE E TE T FT T FT F E id 输入 id

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论