




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、昆明理工大学信息工程与自动化学院学生实验报告( 2012 2013 学年 第 1 学期 )课程名称:编译原理 开课实验室: 信自楼44 年月 日年级、专业、班学号姓名成绩实验项目名称简单样本语言的词法分析器指导教师李亚教师评语该同学是否了解实验原理:A.了解B.基本了解C.不了解该同学的实验能力:A.强 B.中等 C.差 该同学的实验是否达到要求:A.达到B.基本达到C.未达到实验报告是否规范:A.规范B.基本规范C.不规范实验过程是否详细记录:A.详细B.一般 C.没有 教师签名: 年 月 日一、实验目的及内容设计、编制、调试一个词法分析子程序识别单词,加深对词法分析原理的理解。二、实验原理
2、及基本技术路线图(方框原理图或程序流程图)对给定的程序通过词法分析器弄够识别一个个单词符号,并以二元式(单词种别码,单词符号的属性值)显示。而本程序则是通过对给定路径的文件的分析后以单词符号和文字提示显示。三、所用仪器、材料(设备名称、型号、规格等或使用软件)Windows下的visual c+6.0;四、实验方法、步骤(或:程序代码或操作过程)#include #includeusing namespace std;#defineMAX 22char ch = ;string key15=begin,end,if,then,else,while,write,read,do, call,con
3、st,char,until,procedure,repeat;int Iskey(string c)/关键字判断int i;for(i=0;iMAX;i+) if(pare(c)=0) return 1;return 0;int IsLetter(char c) /判断是否为字母if(c=a)|(c=A) return 1;else return 0;int IsDigit(char c)/判断是否为数字if(c=0&c=9) return 1;else return 0;void analyse(FILE *fpin)string arr=;while(ch=fgetc(fp
4、in)!=EOF) arr=;if(ch= |ch=t|ch=n)else if(IsLetter(ch)while(IsLetter(ch)|IsDigit(ch) if(ch=A) ch=ch+32;arr=arr+ch;ch=fgetc(fpin);fseek(fpin,-1L,SEEK_CUR);if (Iskey(arr)coutarrt$关键字endl;elsecoutarrt$普通标识符endl;else if(IsDigit(ch)while(IsDigit(ch)|ch=.&IsDigit(fgetc(fpin)arr=arr+ch;ch=fgetc(fpin);fseek(
5、fpin,-1L,SEEK_CUR);coutarrt$无符号实数endl;else switch(ch)case+:case- :case* :case= :case/ :coutcht$运算符endl;break;case( :case) :case :case :case; :case. :case, :case :case :coutcht$界符endl;break;case: :ch=fgetc(fpin);if(ch=) cout:=t$运算符endl;else cout=t$运算符 :ch=fgetc(fpin);if(ch=) cout=t$运算符)coutt$输入控制符end
6、l;else coutt$运算符endl;fseek(fpin,-1L,SEEK_CUR);break;case :ch=fgetc(fpin);if(ch=)cout=t$运算符endl;else if(ch=)coutt$输出控制符) coutt$运算符endl;elsecoutt$运算符endl;fseek(fpin,-1L,SEEK_CUR);break;default : coutcht$无法识别字符endl;void main()char in_fn30;FILE * fpin;coutin_fn;if(fpin=fopen(in_fn,r)!=NULL) break;else c
7、out文件路径错误!请输入源文件名(包括路径和后缀名):;coutn*分析如下*endl;analyse(fpin);fclose(fpin);五、实验过程原始记录( 测试数据、图表、计算等)源程序为:# include int main()double r,s,h,v;printf(r,h=?);scanf(%lf,%lf,&r,&h);s=3.1415926*r*r;v=s*h;printf(r=%.2f,s=%.2f,h=%.2f,v=%.2fnn,r,s,h,v);return 0;六、实验结果、分析和结论(误差分析与数据处理、成果总结等。其中,绘制曲线图时必须用计算纸或程序运行结果、改进、收获)词法分析器主要特点是不依靠语法,而只依靠词法,即处理一个单词时不依赖于外部单词的信息,因此词法分析器一般都很简单。语法分析时,调用词法分析器,根据已知文法利用递归向下分析,检查语法错误。在分析时,一是把词法分析器当成语法分析的一部分,另一种是把词法分析器当成编译程序的独立部分。在前一种情况下,词法分析器不断地被语法分析器调用,每调用一次词法分析器将从源程序的字符序列拼出一个单词,并将其Token值返回给语法分析器。后一种情况则不同,词法分析器不是被语法分析器不断地调用,而是一次扫描全部单词完成编译器的独立一遍任务。这次实验刚开始我的时候我是对照课
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 洪山钢结构岗亭施工方案
- 2025湖北武汉市汉口学院专职教师招聘模拟试卷及答案详解(名师系列)
- 2025年湖北省三支一扶招聘考试(2000人)模拟试卷及完整答案详解1套
- 2025年浙江宁波市卫生健康委部分直属事业单位公开招聘高层次人才69人(第二批)考前自测高频考点模拟试题及参考答案详解一套
- 合肥员工体验咨询方案
- 宿迁防爆墙施工方案公司
- 三跨项目咨询方案模板
- 端午节活动策划方案执行表
- 节能降耗项目总结报告
- 物流配送管理系统功能需求文档
- 《济南市城镇燃气领域重大隐患判定指导手册》
- 卢卡奇的《历史与阶级意识》
- JJG693-2011燃气泄漏检测仪器检定规程
- 三峡大学科技学院实习报告及实习成绩考核鉴定表模板
- 电缆电线技术标书
- 柔性压力传感器制备法
- 水稻高产栽培技术要点
- (免费分享)工商银行业务委托书打印版
- GB 5226.1-2008机械电气安全机械电气设备第1部分:通用技术条件
- 《毛泽东思想和中国特色社会主义理论体系概论》全套课件
- (完整)农村污水处理工程施工组织设计
评论
0/150
提交评论