无符号数的有穷自动机的实现

上传人:公**** 文档编号:498280300 上传时间:2023-07-02 格式:DOC 页数:7 大小:160.50KB
返回 下载 相关 举报
无符号数的有穷自动机的实现_第1页
第1页 / 共7页
无符号数的有穷自动机的实现_第2页
第2页 / 共7页
无符号数的有穷自动机的实现_第3页
第3页 / 共7页
无符号数的有穷自动机的实现_第4页
第4页 / 共7页
无符号数的有穷自动机的实现_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《无符号数的有穷自动机的实现》由会员分享,可在线阅读,更多相关《无符号数的有穷自动机的实现(7页珍藏版)》请在金锄头文库上搜索。

1、内蒙古工业大学信息工程学院实验报告成绩: 指导教师审核(签名): 年 月 日预习报告 实验报告无符号数的有穷自动机的实现 (一)实验目的 无符号数的有穷自动机的实现目的是使学生掌握文法的形式描述,穷自动机的概念。将文法转换成有穷自动机的方法,理解出错处理程序思想,如何用状态矩阵实现一个穷自动机的机内表示。(二)实验内容1无符号数的BNF描述1) d | . | e 2) d | . | e |3) d 4) e | d | 5) d | + | - 6) d 7) d | 2将G文法转换成有穷自动机。3构造状态矩阵;将有穷自动机的状S1 S2 Sn及输入的字a1 a2 am 构成一个n*m的矩

2、阵。4用状态矩阵设计出一个词法分析程序。5扫描无符号数,根据文法给出无符号数出错的位置。(三)实验要求1.学生课前要认真阅读实验指导,理解实验内容与相关理论知识的关系,并完成预习报告2用C语言或其它高级语言编写程序3写出实验报告实验报告成绩: 指导教师审核(签名): 年 月 日预习报告 实验报告无符号数的有穷自动机的实现 (一)实验目的 通过上机实习,熟悉词法分析程序所用的工具自动机,进一步理解自动机理论。掌握文法转换成自动机的技术及有穷自动机实现的方法。(二)实验内容1无符号数的BNF描述1) d | . | e 2) d | . | e |3) d 4) e | d | 5) d | +

3、| - 6) d 7) d | 2无符号数的有穷自动机实现的思想用0-表示无符号数; 用1-表示余留无符号数;用2-表示十进制小数;用3-表示余留十进制小数;用4-表示指数部分; 用5-表示整指数;用6-表示余留整指数。输入无符号数序列,从左到右扫描,遇到“#”号结束扫描。设一个字符数组,接收输入的无符号数,对输入的无符号数逐一进行分析,用一个中间变量接收当前字符。当前字符值发生错误时,输出错误信息;当前字符值正确时,分析下一个字符,反复判断,直至分析完毕。3无符号数的有穷自动机(Z表示结束符)无符号数有穷自动机由图1所示。图1 有穷自动机4无符号数有穷自动机的状态转换矩阵无符号数有穷自动机的

4、状态转换矩阵由表1所示。 de01421142Z233345Z4655666Z(三)实验要求1.学生课前要认真阅读实验指导,理解实验内容与相关理论知识的关系,并完成预习报告2用C语言或其它高级语言编写程序3写出实验报告(四)程序流程图是#?是数字?Y是数字?读一个字符Y是#?出错结束Y初 始 化读一个字符是否为#?是数字?读一个字符是#?N是小数点.读一个字符是数字?出错读一个字符是#?N是指数e读一个字符出错是符号+/ -读一个字符YYNYNNYNYY YYNNN出错N(五)程序代码/ zhangtianyou.cpp : 定义控制台应用程序的入口点。/#include stdafx.h#i

5、nclude#define LEN 30 int main()char numberLEN=0;lab0:int i=0;printf(Please input a number:n);scanf(%s,number);if(numberi=#)printf(input this number is right!n);goto last;else lab1:if(numberi=0&numberi=0&numberi=0&numberi=0&numberi=9)i+;if(numberi=#)printf(input this number is right!n);else goto lab3

6、;else printf(input this number is error!n);else printf(input this number is error!n); last:printf();goto lab0;return 0;(六) 程序运行结果测试测试结如下图,测试结果符合实验要求。能够对不确定的有穷自动机BNF到确定的有穷自动机DFA的实现。(七)调试程序出现的问题及解决的方法实验中编程基本没什么问题,就是刚开始对实验的理解没有吃透,不知道怎么编程,但是,看了老师编写的试验流程图,对实验的原理和实验的实现有了清晰地思路。(八)实验心得体会通过本次试验,让我知道了我们编写程序的编译器是怎么编译程序和怎么工作的,也对编译课的理论知识有了一些加深的了解。这次试验通过对于无符号数有穷自动机的实现,运用了词法分析,从左到右扫描字符对原程序进行扫描,产生一个个单词序列,用以语法分析,其它阶段。词法分析从不确定的有穷自动机BNF到确定的有穷自动机DFA的实现,最后确定的有穷自动机DFA的最小化。这次试验通过实践把老师讲的理论知识得到了充分的展示,对我们的编程打下了坚实的理论知识。所以,这次试验让我受益匪浅。第 页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号