已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
合肥工业大学计算机与信息学院编译原理实验报告专 业 班 级:学生姓名及学号:课 程 教学 班 号:任 课 教 师:实 验 指导 教 师:实 验 地 点: 20102011学年第一学期合肥工业大学课程设计任务书设 计题 目简化的FORTRAN语言词法分析程序设计成绩主要内容将教材P.42上的表3.1的词法分析器构造出来,限制条件如教材所述。保留字的识别按标识符一样识别,通过查找保留字表区分是保留字还是标识符。程序能够从用户输入的源程序中,识别出的单词符号,并用二元式表示,显示输出或输出到文件中指导教师意见该生能按时完成课程设计任务书所规定的程序设计,综合运用所学知识独立分析和解决问题的能力 。程序设计方案 。论文论述 ,文理 ,格式 。程序运行结果 。程序验收时回答问题 。 签名: 目 录引言.1第一章 概述.4 1.1设计内容.4 1.2设计要求.4第二章 设计的基本原理.4 2.1.4 2.2.4 第三章 程序设计.43.1总体方案设计.43.2各模块设计.5 第四章 程序测试.5结论.5参考文献.5附录 程序清单.6第一章 概述设计内容:简化的FORTRAN语言词法分析程序设计设计要求:将教材P.42上的表3.1的词法分析器构造出来,限制条件如教材所述。保留字的识别按标识符一样识别,通过查找保留字表区分是保留字还是标识符。程序能够从用户输入的源程序中,识别出的单词符号,并用二元式表示,显示输出或输出到文件中。第二章 设计的基本原理首先,所有关键字(如IF,DIM等)都是保留字。所谓保留字的意思就是,用户不得使用它们作为自己定义的标志符。例如,下面的写法是绝对禁止的: IF(5)=X以为我们的分析器在识别出IF时就认定它是一个关键字。如果不采用保留字的办法就必须使用超前搜索技术。其次,由于把关键字作为保留字,故可以把关键字作为一类特殊标志符来处理。也就是说,对于关键字不专设对应的转换图。但把他们预先安排在一张表格中(保留字表)。当转换图识别出一个标志符时,就去查对这张表,确定它是否为一个关键字。再次,如果关键字、标志符和常数之间没有确定的运算符或界符作间隔,则必须至少用一个空白符做间隔。在上述假定下,多数单词符号的识别就不必使用超前搜索技术。第3章 程序设计3.1总体方案设计1、 基于实验的内容,构造程序所需的模块.2、 根据已建构的模块,写出各个模块的相应程序代码.3、 在主函数中调用模块来完成所要得到的效果.3.2各模块设计int main() /主函数调用int function(word *a,word b,word c,word *d,char *shuru ,int k)/通过if循环判断空格,特殊符号,关键字,数字,自定义符号,其他符号按出错处理struct word /定义结构体用于存储关键字、特殊符号word important5; /定义结构体变量存储关键字word num; /定义结构体变量存储数字word biaozhifu; /定义结构体变量存储标识符word teshufu7; /定义结构体变量存储特殊符号第四章 程序测试实验的输入和输出输入教材42页表3.1的单词符号 关键字:DIM IF DO STOP END。 自定义标志:BBBJKJL KJKJ4234。 长整数:3432 。特殊符号:= + * * , ()。其他符号:. 。输出为参考文献程序设计语言编译原理面向对象程序设计数据结构附录 程序清单#include#include#includeusing namespace std;#define max 100struct word /定义结构体用于存储关键字、特殊符号等相关信息int code;char Tmax;int function(word *a,word b,word c,word *d,char *shuru ,int k) char getwordmax;int j=0;if(shuruj= )/判断空格k=k+j+1; function(a,b,c,d,shuru+j+1,k);else if(shuruj=|shuruj=+|shuruj=*|shuruj=,|shuruj=(|shuruj=)/判断特殊符号if(shuruj=*)getwordj=shuruj;j=j+1;if(shuruj=*)getwordj=shuruj;cout(d3.code,d3.T )endl;elsej=j-1;cout(d2.code,d2.T )endl;elsegetwordj=shuruj;for(int i=0;i7;i+)if(i=3)continue;elseif(di.T0=getword0)cout(di.code,di.T)=0&shuruj=0&shuruj=9)getwordj=shuruj;j=j+1;j=j-1;getwordj+1=0;cout(b.code,getword)=A&shuruj=a&shuruj=A&shuruj=a&shuruj=0&shuruj=9)getwordj=shuruj;j=j+1;j=j-1;getwordj+1=0;if(!strncmp(getword,a0.T,3)cout(a0.code,a0.T)endl;else if(!strncmp(getword,a1.T,2)cout(a1.code,a1.T)endl;else if(!strncmp(getword,a2.T,2)cout(a2.code,a2.T)endl;else if(!strncmp(getword,a3.T,4)cout(a3.code,a3.T)endl;else if(!strncmp(getword,a4.T,3)cout(a4.code,a4.T)endl;else cout(c.code,getword)endl;k=k+j+1; function(a,b,c,d,shuru+j+1,k);else if(shuruj=0)/判断是否为结束符goto exit;else /出错处理cout第k+1个字符出错endl;k=k+j+1;function(a,b,c,d,shuru+j+1,k);exit: return 0;int main() word important5; /定义结构体变量存储关键字word num; /定义结构体变量存储数字word biaozhifu; /定义结构体变量存储标识符word teshufu7; /定义结构体变量存储特殊符号for(int i=0;i5;i+) /将关键字的相关信息存储进去importanti.code=i+1; important0.T0=D;important0.T1=I;important0.T2=M; important0.T3=0;important1.T0=I;important1.T1=F;important1.T2=0;important2.T0=D;important2.T1=O;important2.T2=0;important3.T0=S;important3.T1=T;important3.T2=O;important3.T3=P;important3.T4=0;important4.T0=E;important4.T1=N;important4.T2=D;important4.T3=0;num.code=7; /将数字的属性存储进去biaozhifu.code=6; /将标识符的属性存储进去for(i=0;i7;i+) /将特殊符号的相关信息存储进去teshufui.code=i+8; teshufu0.T0=;teshufu0.T1=0; teshufu1.T0=+;teshufu1.T1=0;teshufu2.T0=*;teshufu2.T1=0;teshufu3.T0=*;teshufu3.T1=*;teshufu3.T2=0;teshufu4.T0=,;teshufu4.T1=0;
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大学《计算机科学与技术-计算机科学实验技术》考试模拟试题及答案解析
- 2025年大学《人居环境科学与技术-人居环境方案设计与实训》考试模拟试题及答案解析
- 2025新能源招聘面试题及答案
- 电商物流专员面试题及答案
- 2025年下半年河南信阳固始部分县直及乡镇事业单位招聘笔试易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年河北邯郸市魏县县委人才工作领导小组博硕引才74人易考易错模拟试题(共500题)试卷后附参考答案
- 2025年下半年河北石家庄市第二批事业单位招聘工作人员5611人笔试易考易错模拟试题(共500题)试卷后附参考答案
- 2025年大学《大功率半导体科学与工程-大功率器件原理》考试模拟试题及答案解析
- 保险核保员考试题及答案
- 安徽恒源煤电招聘试题及答案
- 三年级上册美术课件-第十一课 留住秋天 ︳湘美版
- 260吨转炉扭力杆更换方案
- 中学生必备古诗文经典名句500句
- 心电图 (史上最完美)课件
- 生产调度会工作安排及督办事项管理办法
- 简约高血压护理查房护士通用ppt模板含高血压药品介绍
- DBJ41∕T 228-2019 河南省房屋建筑施工现场安全资料管理标准
- 流动资金自动测算表(内自带计算公式)
- 计量检定收费的有关规定(共3页)
- 大宗商品交易中心项目建议书范文
- 医疗器械项目融资计划书(模板参考)
评论
0/150
提交评论