词法分析器设计
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月月考生物试卷
网友关注
- 生理教学大纲
- 西医内科学复习资料 (1)
- 商英论文
- 2013学年第二学期《仓储作业实务》期末试卷
- 管理学艺术诗集
- 微观经济学第第6章参考答案
- 电大护理科研方法作业及答案
- 毕业论文
- 7正文(1)
- 杨振中《文言文启蒙读本》100“蒙”详析(1)(2)
- 案例问题2-投资战略案例参考答案
- 聆听技巧——沟通高手
- 财政概念与特征作业
- 微观经济学第第8章课后答案
- 柏章丽2015年论文
- 2014整理版 正常人体解剖学复习思考题
- 三体读书报告
- 大学同学关系
- 合同管理
- 作家能够在现实中看到什么--长篇小说《长势喜人》阅读印象
- 明代文学第五章
- 管理团队建设方案
- 5. 2015 新上课 不确定关系 打印文件
- 湘潭大学兴湘学院2011级毕业生论文编排格式要求
- 工商管理毕业论文参考题目
- 医学心理学考试复习之中英词汇
- 人生若只如初见——纳兰容若(2)
- 世界这么大 还能遇见你
- 古代文学期末复习
- 新建 个人与团队管理88分
网友关注视频
- 七年级英语下册 上海牛津版 Unit5
- 河南省名校课堂七年级下册英语第一课(2020年2月10日)
- 【部编】人教版语文七年级下册《泊秦淮》优质课教学视频+PPT课件+教案,湖北省
- 七年级下册外研版英语M8U2reading
- 《小学数学二年级下册》第二单元测试题讲解
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 7
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T3763925
- 苏科版数学七年级下册7.2《探索平行线的性质》
- 沪教版八年级下册数学练习册21.4(1)无理方程P18
- 北师大版数学四年级下册3.4包装
- 七年级英语下册 上海牛津版 Unit3
- 外研版英语七年级下册module1unit3名词性物主代词讲解
- 北师大版数学四年级下册第三单元第四节街心广场
- 苏教版二年级下册数学《认识东、南、西、北》
- 冀教版小学数学二年级下册第二单元《余数和除数的关系》
- 六年级英语下册上海牛津版教材讲解 U1单词
- 沪教版八年级下册数学练习册一次函数复习题B组(P11)
- 沪教版牛津小学英语(深圳用) 五年级下册 Unit 10
- 冀教版小学数学二年级下册第二单元《有余数除法的竖式计算》
- 外研版英语三起6年级下册(14版)Module3 Unit2
- 第4章 幂函数、指数函数和对数函数(下)_六 指数方程和对数方程_4.7 简单的指数方程_第一课时(沪教版高一下册)_T1566237
- 冀教版小学数学二年级下册第二周第2课时《我们的测量》宝丰街小学庞志荣
- 【部编】人教版语文七年级下册《过松源晨炊漆公店(其五)》优质课教学视频+PPT课件+教案,江苏省
- 沪教版八年级下册数学练习册21.3(3)分式方程P17
- 3.2 数学二年级下册第二单元 表内除法(一)整理和复习 李菲菲
- 沪教版牛津小学英语(深圳用) 四年级下册 Unit 4
- 3月2日小学二年级数学下册(数一数)
- 苏科版数学 八年级下册 第八章第二节 可能性的大小
- 二年级下册数学第三课 搭一搭⚖⚖
- 19 爱护鸟类_第一课时(二等奖)(桂美版二年级下册)_T502436
精品推荐
- 2016-2017学年高一语文人教版必修一+模块学业水平检测试题(含答案)
- 广西钦州市高新区2017届高三11月月考政治试卷
- 浙江省湖州市2016-2017学年高一上学期期中考试政治试卷
- 浙江省湖州市2016-2017学年高二上学期期中考试政治试卷
- 辽宁省铁岭市协作体2017届高三上学期第三次联考政治试卷
- 广西钦州市钦州港区2016-2017学年高二11月月考政治试卷
- 广西钦州市钦州港区2017届高三11月月考政治试卷
- 广西钦州市钦州港区2016-2017学年高一11月月考政治试卷
- 广西钦州市高新区2016-2017学年高二11月月考政治试卷
- 广西钦州市高新区2016-2017学年高一11月月考政治试卷
分类导航
- 互联网
- 电脑基础知识
- 计算机软件及应用
- 计算机硬件及网络
- 计算机应用/办公自动化
- .NET
- 数据结构与算法
- Java
- SEO
- C/C++资料
- linux/Unix相关
- 手机开发
- UML理论/建模
- 并行计算/云计算
- 嵌入式开发
- windows相关
- 软件工程
- 管理信息系统
- 开发文档
- 图形图像
- 网络与通信
- 网络信息安全
- 电子支付
- Labview
- matlab
- 网络资源
- Python
- Delphi/Perl
- 评测
- Flash/Flex
- CSS/Script
- 计算机原理
- PHP资料
- 数据挖掘与模式识别
- Web服务
- 数据库
- Visual Basic
- 电子商务
- 服务器
- 搜索引擎优化
- 存储
- 架构
- 行业软件
- 人工智能
- 计算机辅助设计
- 多媒体
- 软件测试
- 计算机硬件与维护
- 网站策划/UE
- 网页设计/UI
- 网吧管理