编译原理课程设计报告 下载本文

内容发布更新时间 : 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集合,