编译原理实验 无符号数的有穷自动机的实现

2018-12-05 20:36

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

学时数:4

[实验内容]:

无符号数的有穷自动机的实现。利用状态表和有限自动机的运行原理编制程序,使得

程序能够识别一个输入串是否为一个无符号定点实数。

[实验目的]:

1、理解有限自动机的作用;进一步理解自动机理论。 1、 用状态图和状态表表示有限自动机;

3、以程序实现有限自动机的运行过程;掌握文法转换成自动机的技术及有穷自动机实现的方法。

[实验要求]:

1、 设计要求:利用状态图或状态表相关理论,利用有限自动机理论。

2、 功能要求:输入一个单行无空格的字符串(以“#”号结束),如果该字符串是一个

合法的输入,则显示“接受”,否则显示“不接受”。 3、 输入/输出示例(以无符号定点实数为例):(1)输入:“3.14”,输出:“接受”;(2)输入:“3.1.4”,输出:“不接受”;(3)输入:“3ab”,输出:“不接受”。

[实验提示]:

1、无符号数的BNF描述如下:

0.<无符号数> ? d <余留无符号数> | . <十进制数> | e <指数部分>

1.<余留无符号数> ? d <余留无符号数> | . <十进制数> | e <指数部分> | ε 2.<十进制小数> ? d <余留十进制小数>

3.<余留十进制小数> e <指数部分> | d <余留十进制小数> | ε 4.<指数部分> ? d <余留整指数数> | + <整指数> | - <整指数>

5.<整指数> ? d <余留整指数数>

6.<余留整指数数> ? d <余留整指数数> | ε

2、将G[<无符号数>]文法转换成有穷自动机见图1。

图1

3、构造状态矩阵;将有穷自动机的状S1 S2 ??Sn及输入的字a1 a2 ??am 构成一个n*m的矩阵。

1)根据状态矩阵设计出一个词法分析程序识别无符号数。 2)扫描无符号数,根据文法给出无符号数出错的位置。

[实验报告]:

1、写出无符号数词法分析的思想。

2、画出算法流程图。

3、写出调试程序出现的问题及解决的方法。 4、打印实验报告及程序清单。 5、报告给出测试的结果。

试验示例:有限自动机的运行

程序功能:

利用状态表和有限自动机的运行原理,识别一个输入串是否为一个有效的无符号定点实数。 例: 输入:1# 输出:接受 输入:3.14# 输出:接受 输入:3ab# 输出:不接受 输入:1.2.3

输出:不接受

输入数据要求:不能有空格,以'#'结束(在本程序可以不用'#'结束)。 输出:如果是无符号定点实数,显示“接受”;否则显示“不接受”。


编译原理实验 无符号数的有穷自动机的实现.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年 电大 社会保障学第一次作业(含答案)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: