网站大量收购独家精品文档,联系QQ:2885784924

形式语言与自动机试验参考指导书.doc

  1. 1、本文档共6页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
形式语言和自动机试验指导书 电子科技大学计算机学院 二○○六年八月 目 录 TOC \o 1-1 \h \z 试验一 文法产生语言 1 试验二 DFA对句子识别 2 试验三 NFA对句子识别 4 试验四 NFA向DFA转化 6 试验一 文法产生语言 一.试验目标 掌握文法表示方法,了解文法产生语言过程,了解有穷文法能够产生无穷语言。 二.试验内容 文法存放 使用两种方法存放文法:程序方法和文件方法。 程序方法是指文法四元组均固化到程序内,即一个程序只对应于一个文法。 文件方法是指将文法四元组使用纯文本方法进行存放,并定义好其格式。所设计程序可处理任意文法。 文法表示 使用面向对象程序设计语言可描述除文法四元式,如:采取字符数组表示其字母表和变量表,字符表示开始符号,字符串数组表示产生式组。注意产生式符号(即箭头)在ASCII字符集中没有,可采取“-”来替换。 人工常常使用,经过产生式组取得其它三元式方法不可取,因为需要约定哪些是字母、哪些是变量,工作量很大,反而使其表示更复杂。 句子产生 依据给定长度产生小于该长度全部串。 两种文法存放方法均需要注意不一样产生式可能有相同左部,如S - a 和 S - aS。要生成全部句子则不一样产生式均需要使用,所以需要一个数组(或队列、栈)来存放目前产生句型。 三.试验要求 试验前要做好充足准备,包含程序清单、调试步骤、调试方法,和对程序结果分析等。 四.试验汇报 1、程序说明。说明程序功效、结构。 2、调试说明。包含上机调试情况、上机调试步骤、调试所碰到问题是怎样处理,并对调试过程中问题进行分析,对实施结果进行分析。 3、写出源程序清单和实施结果。 试验二 DFA对句子识别 一. 试验目标 1. 加深对DFA工作原理了解。 2. 学习程序固定DFA编写,和文件形式存放DFA结构。 二. 试验内容 了解DFA工作原理,进行以下多个方面设计和实现: 设计固定DFA。立即DFA使用if-then-else,和switch-case和for循环方法表示。一个函数只能表示一个DFA,而整个程序只围绕该DFA进行。 设计文件形式存放DFA。设计文件格式;进行DFA动态生成;使用一组字符串对所生成DFA有效性和正确性进行验证。 图形化显示。本内容属于扩展要求。假如学生能使用Java或VC里图形模块进行结果显示无疑是很有意义。 其中,对于固定DFA设计解释以下: if-then-else语句通常见于输入字母表只有两个字符情况,不然应使用switch-case来判定下一个状态是什么。另外,switch-case也用于说明目前所处状态。For循环用于控制输入字符串,对于长度为n输入字符串,for循环体自然应实施n次。 对于文件形式存放DFA解释以下: 因为DFA是动态生成,需要使用面向对象方法,对于k个状态DFA,应生成对应k个状态对象,另外,状态间转换应该由对象间消息传输来实现。对象间相互引用也是必需。 认真阅读给出部分程序代码。完善程序,上机调试运行。 三.试验要求 试验前要做好充足准备,包含程序清单、调试步骤、调试方法。 试验后要进行对程序结果具体分析等。 四.试验汇报 1、程序说明。说明程序功效、结构。 2、调试说明。包含上机调试情况、上机调试步骤、调试所碰到问题是怎样处理,并对调试过程中问题进行分析,对实施结果进行分析。 3、写出源程序清单和实施结果。 试验三 NFA对句子识别 一. 试验目标 1. 加深对NFA工作原理了解,尤其是怎样使用确定来模拟不确定。 2. 学习NFA编写。 二. 试验内容 了解NFA工作原理,进行以下多个方面设计和实现: 设计固定NFA和图形文件形式存放NFA。 使用NFA对字符串进行判定。 图形化显示。本内容属于扩展要求。最好能进行类似单步跟踪显示,方便学生直观地了解多条路径产生/消亡。 其中,NFA对字符串进行判定很有意义。初始状态下,只有一个活动状态,即开始状态。读入一个字符后,因为NFA不确定性,可能造成有多个活动状态。伴随字符不停读入,一些活动状态下一个状态既能够有多个,也能够一个也没有。假如字符串读完时活动状态集合包含了一些终止状态,则说明字符串被该NFA接收。 这一过程说明NFA对字符串识别过程并不是线性,即:一个长度为n字符串并不意味着它经过了n + 1个状态(反复状态需要反复计数),而可能要多很多,这和NFA本身相关。对这一点了解对于后面NP问题学习有着很关键作用。 认真阅读给出部分程序代码。完善程序,上机调试运行。 三.试验要求 试验前要做好充足准备,包含程序清单、调试步骤、调试方法。 试验后要进行对程序结果具体分析等。 四.试验汇报 1、程序说明。说明程序功效、结构。 2、调试说明。包含上机调试情况、上机调

文档评论(0)

159****1748 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档