收藏 分享(赏)

设计有穷自动机DFA实现C.doc

上传人:eukav 文档编号:6987906 上传时间:2019-04-29 格式:DOC 页数:19 大小:1.45MB
下载 相关 举报
设计有穷自动机DFA实现C.doc_第1页
第1页 / 共19页
设计有穷自动机DFA实现C.doc_第2页
第2页 / 共19页
设计有穷自动机DFA实现C.doc_第3页
第3页 / 共19页
设计有穷自动机DFA实现C.doc_第4页
第4页 / 共19页
设计有穷自动机DFA实现C.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、设计有穷自动机 DFA 实现 C+简单程序的词法分析、扫描前面两篇(一、二)只是直观地 针对已明确给出的教学语言 Tiny 源程序进行直接的词法分析(其实根本就称不上),不具有一般性(下面这个针对 C+源程序的词法分析也相当单一,考虑面不足)。下面是我们的课程实验,需要结合课堂上学到的利用有限自动机 DFA 的方法来设计并分析源程序,提取出符合要求的 Token。根据老师给出的课件以及教材上的内容, 扫描程序(词法分析)有下面 3 种实现方式,前面两篇(一、二)就是属于“直接编写”这一类,而本文 则是“DFA” 这一类。1、 按实验要求(如下) ,目前只拙劣地实现了第(1)和(5)点。而且第(

2、1)点中有两个要求未能完成: 浮点数,因为包含单行、多行注释的 DFA 已经很混乱了,这部分暂时先不实现,考虑将来用“表驱动法” (即状 态转换表)来实现。 注释,与教材类似不打印单 行和多行注释,因此代 码实现 中少了处理注释的内容。实验中用到的 C+源程序与要求如下 图:2、对实验要求中的“样例程序”稍微修改了一下。 头文件 #include 被改为 #include “iostream.h“,即 iostream.h 是由双引号 “ 而不是尖括号 包 围的,实际上回到了 C 的代码规范。 这样修改是因为原本确定 DFA 时考虑不全面,忽略了“小于等于 =,判断 =,不等于 != ”这几种特殊情况,因 为他们会跟 = ! 这几个特殊字符造成二义性。 同时,C+ 中的 IO 有“ 与 中的 与代码中的 和 = 。其实,“iostream.h“也被作为字符串识别了,目前尚改进不了。 另外为了测试算术运算符, 对实验要求中的样例程序进 行了修改,程序按照 该样例作为输入,如下图加上了一个“i = i + 2;”语句:3、程序中的打印输出模仿了教材中的样例输出。 对于以上样例输入,最终程序 输出结果如下:4、针对该 C+源程序设计的 DFA 图大致如下:5、实现代码(Java)近来喜欢上了 Vim 的代码高亮,看着清晰明朗,下面是整个实现代码在 Vim 下的截图,文本代码在本文最后:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报