各位高手,请教一下编译原理

love_zhonghongmei 2009-10-31 11:50:34
• 掌握各类单词的形式描述
• 学会用数据中心法实现有限自动机
• 学会用直接转向法实现有限自动机
• 独立完成SNL语言的词法分析器
【实验原理】
词法分析是编译过程的第一阶段。它的任务就是对输入的字符串形式的源程序按顺序进行扫描,根据源程序的词法规则识别具有独立意义的单词(符号),并输出与其等价的Token序列。
有限自动机是描述程序设计语言单词构成的工具,而状态转换图是有限自动机的比较直观的描述方法。我们使用确定的有限状态自动机,简记为DFA。
下面给出能够识别SNL中各类单词的DFA:


根据语言的词法规则构造出识别其单词的确定有限自动机DFA, 仅仅是词法分析程序的一个形式模型,距离词法分析程序的真正实现还有一定的距离。状态转换图的实现通常有两种方法,一种是用状态转换表T;另一种是直接转向法。
 状态转换表法又称数据中心法,是把状态转换图看作一种数据结构(状态转换表),由控制程序控制字符在其上运行,从而完成词法分析。用转换表的优点是程序短,但占存储空间多,直接转向法的优缺点正好与此相反。
直接转向法又称程序中心法,是把状态转换图看成一个流程图,从状态转换图的初态开始,对它的每一个状态结点都编一段相应的程序。
【实验步骤】
一、 构造识别单词的自动机
1.根据构成规则对程序语言的单词按类构造出相应的状态转换图。

2. 对各类单词的状态转换图合并,构成一个能识别语言所有单词的状态转换图。合并步骤为:
(1) 将各类单词的状态转换图的初始状态合并为一个唯一的初态;
(2) 化简调整状态冲突和对冲突状态重新编号;
(3) 如有必要,增加出错状态。
二、 用下面的方法之一生成词法分析程序
(a) 用数据中心法实现有限自动机,生成词法分析程序。
(b) 用直接转向法实现有限自动机,生成词法分析程序
...全文
141 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
maninmatrix 2011-11-08
  • 打赏
  • 举报
回复
这问题一直在百度首页悬挂着。csdn懂编译的人少啊

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧