第一范文网 - 专业文章范例文档资料分享平台

编译原理课程设计

来源:用户分享 时间:2020-06-16 本文由清影横笛 分享 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

合肥工业大学 计算机与信息学院

课程设计

编译原理课程设计

专业班级:

学 号:

姓 名:

引 言

本题的题目要求为: 对给定的正规式r1、r2,已知它们的NFA分别为M1、M2(其状态转换矩阵及初态、终态信息分别保存在指定文件中)。构造一程序,由此程序构造正规式r1r2(或运算)的NFA(将其状态转换矩阵及初态、终态信息保存在指定文件中)。

程序实现前,需要两个文件存放正规式r1和r2,连接运算成功后,需要将新的正规式存放在新的文件中.故本实验共有三个文件:nfa1.txt、nfa2.txt、nfa.txt,其中nfa1.txt、nfa2.txt为实验运行前建立的,nfa.txt是运行程序后程序建立的,存放的是连接后的正规式。

本课程设计用C++编写,用到了文件的输入输出流,连接运算并

不复杂,故程序并不复杂。

一.概述

1.1设计内容

1.2 设计要求

对给定的正规式r1、r2,已知它们的NFA分别为M1、M2(其状态转换矩阵及初态、终态信息分别保存在指定文件中)。构造一程序,由此程序构造正规式r1r2(或运算)的NFA(将其状态转换矩阵及初态、终态信息保存在指定文件中)。

构造正规式r1r2(或运算)的NFA的程序实现。

二.设计的基本原理

2.1 正规式与有限自动机的等价性

(1)对任何FAM,都存在一个正规式r,使得L(r)=L(M). (2)对任何正规式r,都存在一个FAM,使得L(M)=L(r).

2.2 状态转换图的合并

三 . 程序设计

3.1 总体方案设计

由于此题目较为简单,所以总体上有三个函数,分别是OnFile1(),OnFile2()和 OnRun(),OnRun()函数完成r1、r2的或运算,而OnFile1()和OnFile2()函数完成对OnRun(()函数的调用。

3.2 各模块设计

本程序仅有一个函数,就是 OnRun()。其中有几个功能模块:

1) 文件的读与写,即将nfa1、nfa2写入输入文件流,将nfa与输出文件流关联;

2) 正规式的或运算与输出(含有对原正规式的输出); 3) 关闭文件输入输出流.

四. 程序测试

1.r1的NFA为M1, 其状态转换矩阵及初态、终态信息为(&表示空串): 5 -9999(初态) 6 -9999(终态) 5 a 5# 5 b 5# 5 & 1# 1 a 3# 1 b 4# 3 a 2# 4 b 2# 2 & 6# 6 a 6# 6 b 6@ 状态转换图:

搜索“diyifanwen.net”或“第一范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,第一范文网,提供最新人文社科编译原理课程设计 全文阅读和word下载服务。

编译原理课程设计 .doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/wenku/1079705.html(转载请注明文章来源)
热门推荐
Copyright © 2018-2022 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top