教育资源为主的文档平台

当前位置: 查字典文档网> 所有文档分类> > 计算机软件及应用> 词法分析器设计

词法分析器设计

上传者:郭少朋
|
上传时间:2015-04-24
|
次下载

词法分析器设计

1、界面部分: 需要对文件有打开、保存、另存为的功能;对文本有撤销、剪切、复制、粘贴、复制、删除、全选的功能 2、词法分析器: 对读入的程序一个字符一个字符的进行词法分析,识别出一个个单词符号,并以三元式(单词行号,单词符号的属性值,单词符号类别)显示。如果有错误,统计总共有多少个错误,并且将每个错误所在行号,以及属于哪种错误显示出来。

计算机专业软件类课程实验报告 课程名称:

实验题目:

实验小组成员:

实验小组组长:

任课教师:

专业名称:

班级名称:

实验起止时间:

编译原理 词法分析器设计 计算机科学与技术 计科1班 2014-5-8~2014-5-15

1、界面部分: 需要对文件有打开、保存、另存为的功能;对文本有撤销、剪切、复制、粘贴、复制、删除、全选的功能 2、词法分析器: 对读入的程序一个字符一个字符的进行词法分析,识别出一个个单词符号,并以三元式(单词行号,单词符号的属性值,单词符号类别)显示。如果有错误,统计总共有多少个错误,并且将每个错误所在行号,以及属于哪种错误显示出来。

一、实验目的

1、要求设计交互界面,能输入能转换能输出,形式和风格自定。

2、设计一个词法分析程序,理解词法分析器实现的原理,掌握程序设计语言中的各类单词的词法分析方法,加深对词法分析原理的理解。

二、实验内容

1、对给定的程序通过词法分析器能够识别一个个单词符号,并以三元式(单词行号,单词符号的属性值,单词符号类别)显示。如果有错误,统计总共有多少个错误,并且将每个错误所在行号,以及属于哪种错误显示出来。

2.本程序自行规定:

(1)关键字

"program", "example", "const", "var", "interger","begin", "void", "String", "System", "out", "println", "end", "if","else", "for" ,"char","to","do","then"

(2)运算符

"=", "<=", "++", ":", "|", "*", "+", "%","-","/"

(3)界符

";", "{", "}", "(", ")", ","

(4)标识符

以字母或下划线开头的字符串表示

(5)常量

用数字表示

(6)空格、回车、换行符跳过

3、在屏幕上显示如下:

(1)Token表中显示:

1 program 保留字

1 example 保留字

1 ; 界符

2 const 保留字

2 k 标识符

2 = 运算符

2 200 常量

(2)错误信息显示:

2errors

4 2a 格式不正确

4 034 不能以0开头

1、界面部分: 需要对文件有打开、保存、另存为的功能;对文本有撤销、剪切、复制、粘贴、复制、删除、全选的功能 2、词法分析器: 对读入的程序一个字符一个字符的进行词法分析,识别出一个个单词符号,并以三元式(单词行号,单词符号的属性值,单词符号类别)显示。如果有错误,统计总共有多少个错误,并且将每个错误所在行号,以及属于哪种错误显示出来。

三、实验需求

1、界面部分:

需要对文件有打开、保存、另存为的功能;对文本有撤销、剪切、复制、粘贴、复制、删除、全选的功能

2、词法分析器:

对读入的程序一个字符一个字符的进行词法分析,识别出一个个单词符号,并以三元式(单词行号,单词符号的属性值,单词符号类别)显示。如果有错误,统计总共有多少个错误,并且将每个错误所在行号,以及属于哪种错误显示出来。

四、主要数据结构介绍

使用三个数组分别来存放关键字、运算符、界符,凡是不属于这三个数组的所有合法字符串当做标识符处理,凡是不属于这三个数组的所有合法数字当做常量处理,其余情况则进行出错处理

五、主要模块算法介绍

1、对输入的程序进行处理:空格、回车、换行符跳过,并按照";"、"="、","、":"等符号将字符串切割开来,同时对字符串使用toCharArray()转换成单个字符,求出切割符号在字符串中的位置,并将它们与切割好的字符串重新组合,使它们与输入程序相同

2、对第一步得到的字符串数组进行一个一个的检查,如果字符串在table1中,则表明是运算符,将状态标记为1;如果字符串在table2中,则表明是保留字,将状态标记为2;如果字符串在table3中,则表明是界符,将状态标记为3

3、如果对当前的字符串不在这三个数组中,且数字序列又是合法的,则表明是常量,将状态标记为4;如果对当前的字符串不在这三个数组中,且字符序列又是合法的,则表明是标识符,将状态标记为5

4、如果对当前的输入不满足前5个状态,且字符序列不是以下划线、字母开头,则表明输入的格式不正确,将状态标记为6;如果对当前的输入不满足前5个状态,且字符序列是以0开头的数字序列,则表明输入的常量是以0开头的,这是非法格式,将状态标记为7

5、将最终的结果打印输出到文本框中

六、程序实现环境及使用说明

本次实验采用Eclipse进行代码的编写、编译及运行;

1、界面部分: 需要对文件有打开、保存、另存为的功能;对文本有撤销、剪切、复制、粘贴、复制、删除、全选的功能 2、词法分析器: 对读入的程序一个字符一个字符的进行词法分析,识别出一个个单词符号,并以三元式(单词行号,单词符号的属性值,单词符号类别)显示。如果有错误,统计总共有多少个错误,并且将每个错误所在行号,以及属于哪种错误显示出来。

编写语言为java语言;

程序的运行环境为jdk1.8;

系统为windows 8.1

七、实验测试用例设计说明

1、正常的测试,这种情况下不会报错

program example;

const k=2;

var

a:interger;

begin

end

2、错误的测试,这个例子中含有非法标识符和非法常量的错误 program example;

const k=2a,c=300,d=034;

var

a:interger;

begin

end

八、实验结果测试情况

1、界面部分: 需要对文件有打开、保存、另存为的功能;对文本有撤销、剪切、复制、粘贴、复制、删除、全选的功能 2、词法分析器: 对读入的程序一个字符一个字符的进行词法分析,识别出一个个单词符号,并以三元式(单词行号,单词符号的属性值,单词符号类别)显示。如果有错误,统计总共有多少个错误,并且将每个错误所在行号,以及属于哪种错误显示出来。

内容需要下载文档才能查看 内容需要下载文档才能查看

版权声明:此文档由查字典文档网用户提供,如用于商业用途请与作者联系,查字典文档网保持最终解释权!

下载文档

热门试卷

2016年四川省内江市中考化学试卷
广西钦州市高新区2017届高三11月月考政治试卷
浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
广西钦州市钦州港区2017届高三11月月考政治试卷
广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
广西钦州市高新区2016-2017学年高二11月月考政治试卷
广西钦州市高新区2016-2017学年高一11月月考政治试卷
山东省滨州市三校2017届第一学期阶段测试初三英语试题
四川省成都七中2017届高三一诊模拟考试文科综合试卷
2017届普通高等学校招生全国统一考试模拟试题(附答案)
重庆市永川中学高2017级上期12月月考语文试题
江西宜春三中2017届高三第一学期第二次月考文科综合试题
内蒙古赤峰二中2017届高三上学期第三次月考英语试题
2017年六年级(上)数学期末考试卷
2017人教版小学英语三年级上期末笔试题
江苏省常州西藏民族中学2016-2017学年九年级思想品德第一学期第二次阶段测试试卷
重庆市九龙坡区七校2016-2017学年上期八年级素质测查(二)语文学科试题卷
江苏省无锡市钱桥中学2016年12月八年级语文阶段性测试卷
江苏省无锡市钱桥中学2016-2017学年七年级英语12月阶段检测试卷
山东省邹城市第八中学2016-2017学年八年级12月物理第4章试题(无答案)
【人教版】河北省2015-2016学年度九年级上期末语文试题卷(附答案)
四川省简阳市阳安中学2016年12月高二月考英语试卷
四川省成都龙泉中学高三上学期2016年12月月考试题文科综合能力测试
安徽省滁州中学2016—2017学年度第一学期12月月考​高三英语试卷
山东省武城县第二中学2016.12高一年级上学期第二次月考历史试题(必修一第四、五单元)
福建省四地六校联考2016-2017学年上学期第三次月考高三化学试卷
甘肃省武威第二十三中学2016—2017学年度八年级第一学期12月月考生物试卷

网友关注视频

六年级英语下册上海牛津版教材讲解 U1单词
冀教版小学英语四年级下册Lesson2授课视频
外研版英语三起5年级下册(14版)Module3 Unit2
【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,天津市
七年级英语下册 上海牛津版 Unit9
3月2日小学二年级数学下册(数一数)
第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
沪教版八年级下册数学练习册21.3(2)分式方程P15
北师大版数学四年级下册第三单元第四节街心广场
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣.mp4
化学九年级下册全册同步 人教版 第18集 常见的酸和碱(二)
二年级下册数学第二课
30.3 由不共线三点的坐标确定二次函数_第一课时(市一等奖)(冀教版九年级下册)_T144342
青岛版教材五年级下册第四单元(走进军营——方向与位置)用数对确定位置(一等奖)
七年级下册外研版英语M8U2reading
苏科版数学七年级下册7.2《探索平行线的性质》
人教版历史八年级下册第一课《中华人民共和国成立》
化学九年级下册全册同步 人教版 第22集 酸和碱的中和反应(一)
第五单元 民族艺术的瑰宝_16. 形形色色的民族乐器_第一课时(岭南版六年级上册)_T1406126
北师大版数学 四年级下册 第三单元 第二节 小数点搬家
《小学数学二年级下册》第二单元测试题讲解
三年级英语单词记忆下册(沪教版)第一二单元复习
二年级下册数学第一课
冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
《空中课堂》二年级下册 数学第一单元第1课时
二次函数求实际问题中的最值_第一课时(特等奖)(冀教版九年级下册)_T144339
8.练习八_第一课时(特等奖)(苏教版三年级上册)_T142692
【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
【部编】人教版语文七年级下册《逢入京使》优质课教学视频+PPT课件+教案,安徽省
冀教版英语三年级下册第二课