实验一:词法分析程序设计.doc
《实验一:词法分析程序设计.doc》由会员分享,可在线阅读,更多相关《实验一:词法分析程序设计.doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理实验报告院系: 姓名: 0000 班级: 学号: 题目: 词法分析器 完成日期: 2014 年 10 月8 日实验一:词法分析程序设计【开发语言及实验环境】开发语言:C/C+/C#实验环境:Microsoft Visual Studio 6.0/ Microsoft Visual Studio .NET 2005【实验目的】1、 理解词法分析在编译程序中的作用2、 加深对有穷自动机模型的理解3、 掌握词法分析程序的实现方法和技术【实验要求】对一个简单的语言的子集编制一个一遍扫描的词法分析程序。【实验内容】1、待分析的简单语言词法(1)关键字可以自由添加。如C语言的关键字:main if
2、 else int char return void while等。 (2) 标识符(ID)IDletter(letter|digit)*Lettera|z|A|Zdigit0|9(3) 常数(可以先以整形常数为例)NUMdigit(digit)*digit0|9(4) 运算符如C语言中的运算符= + - * / = = !=等。 (5) 界符如C语言中的; : , ( )等。空格由空白、制表符和换行符组成。空格一般用来分隔关键字、ID、NUM、运算符和界符。词法分析阶段空格通常被忽略。2、 各种单词类别及对应的种别编码关键字设置为099,如“main”设置为0,“if”设置为1,;标识符设置
3、为100;常数设置为101109,如整形常数设置为101,小数常数设置为102,;运算符设置为110149,如“=”设置为111,“+”设置为112,;界符设置为150159,如“;”设置为150,“,”设置为151,。3、 词法分析程序的功能输入:所给文法的一段源程序字符串输出:二元组(syn,token)构成的序列。syn为单词种别码;token为存放的单词自身字符串;例如:对源程序int x =9; if (x0) x=2*x+1/3; 经词法分析后输出如下序列:(3,int) (1,x) (4,=) (2,9) 4、 主要算法思想算法的基本任务是从字符串表示的源程序中识别出具有独立意义
4、的单词符号,其基本思想是根据扫描到单词符号的第一个字符种类,拼出相应的单词符号。(1) 主程序示意结构图:输出单词二元组置初值调用扫描子程序结束(2) 扫描子程序(scanner)的算法思想是否关键字 FT是否为运算符、界符等拼数 FT FTsyn=20syn=10syn为对应关键字的类别码错 给出相应的syn值5、关键字表置初值关键字作为特殊标识符处理,把它们预先安排在一张表格中(关键字表),当扫描程序识别标识符时,查关键字表。如能查到匹配的单词,则为关键字,否则为一般标识符。6、调试程序,验证输出结果。【思考题】1、 在编程过程中遇到了哪些问题,你是如何解决的。2、 源程序若存在注释,如何
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 词法 分析 程序设计
限制150内