- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第三章习题解答1.Pascal 和C语言的字母表是什么?==pascal语言的字母表是:{ 0,1,…,9}∪{a,…,z}∪{A,…,Z}∪{+,-,*,/,\,↑,?,?,_, (,),[,],;,:,=,,,,,Enter,Space,Tab }C语言的字母表是:{ _, 0…9, a…z, A…Z, +, -, *, /, \, %, (, ), [, ], ., , |, !, =, #, {, }, ’, ”, ?, :,,, Enter,Space,Tab }====3. Pascal程序段,试问词法分析阶段能发现哪些词法错误?????if a=1. then b: =1.0 else c: =1; a: =bc+d;==if a=1.(1) then b:(2)=1.0 else c:(3)=1; a:(4)=bc+d;(1) 第一个等号右边的数字1.写法不规范: 不符合实数的词法规范(2) 字母b,c和第二个a后边的赋值符号不会被识别出来,因为:和=之间有空格,会被识别为两个符号分别是冒号“:”和等号“=”====4.写出识别下列正则表达式定义的单词的DFA:(1) ((a|bc)*d)+(2) ((0|1)*(2|3)+)|0011(3) (a Not (a)) aaa======5.写出定义Pascal类定点10进制小数的正则表达式。其要求是前面和后面没有多余的0,例如,0.0,0,123.01和123005.0是合法的;而00.0,002456.1000和001.00是非法的。==D = { 0, 1, …, 9 }Decimal = (0|(D–{0})D*).(D*(D–{0})|0) ====7. 写出对应正则表达式 (0|1)*0(0|1)n的NFA示意图, 其中n 是大于等于0 的整数。证明 NFA 的等价的 DFA 的状态个数将按指数级增大,即假设 NFA 的状态个数为M , 则 DEA 的状态个数是M^n级的======6.构造一个DFA,它接受的符号串集合等于正则表达式(ab*c)|(abc*) 所示的字符串集合。要求先构造NFA,其次转换成DFA,最后加以极小化。======8.写出与下面DFA等价的正则表达式。==正则表达式为: (ε| a+a | hb*h)正则表达式为: a((hc|c)da)*====9.当构造词法分析器时,根据单词的正则表达式定义首先构造 NFA,之后将NFA 转换成DFA,并用其 DFA 进行词法分析。从正则表达式到NFA 的转换块,而 NFA 到 DFA 的转换比较慢,因此在某些场合下,用 NFA 并按 NFA 到 DFA 的转换思想进行词法分析可能是很有意思的。就是说,在 NFA 的一个状态下,遇到一个字符时,用 NFA 到 DFA 时的构造技术确定下一状态。试写出算法。==procedureNextState (instate: in State, a: in char, outState: out State)???BEGIN??????for (元素ssinState)??????BEGIN?????????ss1:= close (MoveSet(ss, a, NFA.TT));?????????outState := outState∪ss1;??????END???END====10.设 DFA1 和 DFA2 是同一字母表上的不同确定自动机,写出等价性判定算法。==算法:(1)将DFA1和DFA2分别化简得最简自动机DA1和DA2,若DA1和DA2状态数不等,则不等价,停止;否则转(2)(2)将DA2的初状态改为与DA1的初状态相同,设为S1_0;令ss={S1_0},News={S1_0}(3)从News中任选一个状态Sn,对每一个字符a,比较DA1.TT(Sn,a)和DA2.TT(Sn,a)[1]若二者其中一个为空,不等价,停止[2]若二者均不为空,但DA2.TT(Sn,a)是DA1中状态且不等于DA1.TT(Sn,a),不等价,停止[3]若二者均不为空,DA2.TT(Sn,a)不是DA1中状态,则将DA2.TT(Sn,a)改为与DA1.TT(Sn,a)相同,若DA1.TT(Sn,a)不在集合ss中,则将其加入News;????(4)从News中删去Sn,若News为空,二者等价,停止;否则转(3)
您可能关注的文档
最近下载
- 电阻焊的原理.ppt VIP
- 机械设计与创新 三相交流异步电动机的选型原则步骤及实例 【课件】任务6.1.1三相交流异步电动机的选型原则步骤及实例.pptx VIP
- 一建【建筑】口袋里的建造师-周超【完全版】.pdf VIP
- 全身型幼年特发性关节炎及合并巨噬细胞活化综合征诊疗专家共识.docx VIP
- 声乐课程教学大纲-音乐学院.pdf
- 食品安全管理保障措施.doc VIP
- 燃气锅炉安全隐患排查治理检查表.doc VIP
- (2023秋)冀教版一年级数学上册《 前后、左右》PPT课件.pptx VIP
- 课程设计与授课技巧.pptx VIP
- 巨噬细胞活化综合征与幼年特发性关节炎 MAS and SOJIA.ppt VIP
文档评论(0)