内容发布更新时间 : 2025/1/8 5:23:04星期一 下面是文章的全部内容请认真阅读。
软件学院05级 学号: 20054451 姓名:辛华
时间:2007年7月25日
编译原理课程设计报告
一、词法分析
1、实验目的
编程实现词法分析程序,加深理解对词法分析原理。 2、实验要求
a、识别出特殊符号(用顿号隔开),如 = 、+ 、- 、* 、/ 、< 、>、<= 、 >= 、== 、!= 、;、 :、 , 、{ 、}、 [、 ]、 ( 、)等 b、识别出关键字,如 if;then;while;do;end;for等 c、识别其它标记 ID 和 NUM,并通过以下正规式定义其他标记: ID -> letter ( letter | digit ) letter -> a | b ... | z | A |B ... | Z NUM -> digit digit* digit -> 0 | 1 ... | 9
3、算法思路:
本程序每次判断均连续输入几个的词,不同的词之间用“空格”隔开,因为所输入的字符串中含有“空格”,故在输入的时候启用文本监视器,利用字符串解析器扫描所输入的字符串,以逗号,空格,分号分开,以java.util包中的 模式匹配生成文法和保留字
对每个token进行分析,测试其匹配的模式,把它们区分开来 4、程序流程图
主程序流程图
开 始
置 初 值 子程序扫描 输出判断结果
N 是否输入结束字
符?
Y
扫描程序流程图 开 始
往下个字符扫描
N 是否空格?
Y
是 否 结 束 字 Y 是 符?
N 是否关键字? Y N 是否数字? Y N
Y N
输出判断结果
结 束 5.运行环境 JDK6.0 实验二:LL1语法判断
一、实验目要求:
自定义一个文法集,输入文法产生式,计算文法的FIRST,FOLLOW和SELECT集合,