版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、编译原理实验报告院系:000000姓名:班级:0000000学号:00000000题目:词法分析器完成日期:2014 年10月8日实验一:词法分析程序设计【开发语言及实验环境】开发语言:C/C卄/C#实验环境:Microsoft Visual Studio 6.0/ Microsoft Visual Studio .NET 2005 【实验目的】1、理解词法分析在编译程序中的作用2、加深对有穷自动机模型的理解3、掌握词法分析程序的实现方法和技术【实验要求】对一个简单的语言的子集编制一个一遍扫描的词法分析程序。【实验内容】1、待分析的简单语言词法(1) 关键字可以自由添加。如C语言的关键字:ma
2、m if else mt char letuin void wliile 等。(2) 标识符(LD)IDletter(letter|digit)* Lettera| |z| A| |Zdigit0卜|9(3) 常数(可以先以整形常数为例)NUM-digit(digit)* digit-0|-|9(4) 运算符如C语言中的运算符=+ -*/= !=等。(5) 界符如C语言中的;:,()等。空格由空白、制表符和换行符组成。空格 一般用来分隔关键字、ID、NUM、运算符和界符。词法分析阶段空格通常 被忽略。2、各种单词类别及对应的种别编码关键字设置为0-99,如“main”设置为0, “if”设置为
3、1,;标识符设置为100:常数设置为101109,如整形常数设置为101,小数常数设置为102,: 运算符设置为110149,如设置为111, “十”设置为112,; 界符设置为150159,如“;”设置为150, “,”设置为151,o3、词法分析程序的功能输入:所给文法的一段源程序字符串输出:二元组(syn, token)构成的序列。svn为单词种别码;token为存放的单词自身字符串;例如:对源程序mt x =9; if (x0) x=2*x+l/3;经词法分析后输出如下序 列:(3, int) (1, x)(4, =)(2, 9)4、主要算法思想算法的基本任务是从字符串表示的源程序中识
4、别出具有独立意义的单词符 号,其基本思想是根据扫描到单词符号的第一个字符种类,拼出相应的单词符号。(1)主程序示意结构图:(2)扫描子程序(scaimei)的算法思想是否关键字拼数是否为运算符、界符等syn为对应关键字的 类别码syn=10syn=20X给岀相应的syn值错5、关键字表置初值关键字作为特殊标识符处理,把它们预先安排在一张表格中(关键字表), 当扫描程序识别标识符时,查关键字表。如能查到匹配的单词,则为关键字,否 则为一般标识符。6、调试程序,验证输出结果。【思考题】1、在编程过程中遇到了哪些问题,你是如何解决的。2、源程序若存在注释,如何实现词法分析,在现有程序基础上进行扩充。
5、功能测试:1.输入字符串#其结果显示如下:2 输入字符串 A A A A A A # 其结果显示如下:c *C: Docusents and SettingsAdiiinistrator桌面eze尔好,请输入:一HC303输入字符串1234#其结果显示如下:你好,请输入= 1234# 11,1234X0,#include#includechar prog80joken6;char ch;mt syn.p.m,n,sum;char * rwtab8=”b亡gHrTifFthenTwlHleTdo;EiicrstatTfdr”; mainQp=0;prmtf(Hn你好,请输入J;ch=getcha
6、i(); progp4H-=ch; while(ch !=护); p=0;doscanerQ; switch(svn)case 11:piintf(H(%d5%d),r,syn,sum);break: case -1:printHmput enornM); break; default:printf(H(%d,%s),syn,token);while(syn!=O); getchQ;/*词法扫描程序:*/scaner()fbr(n=0;n8;n+)tokenn=NULL;m=0;ch=progp+;while(ch= *)ch=progp+;if(ch=h)|(ch=AJ)whik(chv=N
7、&ch=h)|(ch=AJ|(ch=O) tokenm+=ch; ch=p【ogp 卄;tokmm+=、0:ch=prog-p;svn=10;fbr(n=0;n8;n+)if(sticmp(token,nvtabn)=0)syii=n+l;break;if(ch=O) sum=O;wlule(ch=O) sum=sum* 10+ch ch=piogp+; ch=piog-p; syii=ll;elseswitch(ch)case *,:tokenm+=ch; ch=p】ogp卄; 改ch=) syii=24; tokenm+=ch;elsesyn=23; ch=prog-p;break;cas
8、e 丫兀okenm+=ch; ch=p】ogp卄; 改ch=) svn=18; tokenm+=ch; elsesyn=17; ch=prog-p;break;case syn= 13;token0=ch;break; case -r:svn= 14;token0=ch;break;case 嗦:syn= 15;token0=ch;break; case 71: svn= 16;token0=ch;break;case :syn=18;token0=ch;break; case ,:syii=21 ;token0=ch;break;case *-:syii=24;token0=ch;break;case -,:syn=25;token0=ch;break; case ,;syn=26;token0=ch;break;casesyn=27;token0=ch;beak;case y: svn=28;token0=ch;break;case Wf:syn=0;token0=ch;bieak;case ,!t:s
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026河北唐山中心医院眼科招聘2人笔试备考试题及答案解析
- 2026年文法学院招聘MPA教学秘书备考题库及一套参考答案详解
- 2025广西南宁市良庆区总工会招聘工作人员1人笔试模拟试题及答案解析
- 2026年贵港市港南区自然资源局关于公开招聘编外聘用人员的备考题库及一套参考答案详解
- 2026年江投资本板块校园公开招聘备考题库有答案详解
- 事浙江省嘉兴经济技术开发区2026年公开招聘75人备考题库及1套参考答案详解
- 2026年海宁市远达教育集团招聘备考题库(九)参考答案详解
- 2026年温岭市交通旅游集团有限公司下属温岭市规划设计院有限公司面向社会公开招聘工作人员备考题库及参考答案详解1套
- 2026年陆川县滩面镇卫生院公开招聘编外人员备考题库及一套答案详解
- 2026湖南常德烟草机械有限责任公司招聘24人笔试备考题库及答案解析
- (自2026年1月1日起施行)《增值税法实施条例》的重要变化解读
- 2025年游戏陪玩分成协议
- 全国秸秆综合利用重点县秸秆还田监测工作方案
- 2026年内蒙古化工职业学院单招职业适应性考试参考题库及答案解析
- 国家事业单位招聘2024国家水利部小浪底水利枢纽管理中心招聘事业单位人员拟聘用人员笔试历年参考题库典型考点附带答案详解(3卷合一)
- 核生化应急救援中心火灾预案
- 25数五上数学人教版期末押题卷5套
- 2026年辽宁金融职业学院单招职业适应性测试题库及参考答案详解
- 中小企业人才流失问题及对策分析
- 2026年教师资格之中学综合素质考试题库500道及完整答案【名师系列】
- 中海大海洋地质学课件第4章河口与海岸-3第十二讲
评论
0/150
提交评论