已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理课程设计课程设计题目: 词法分析器 作者所在学院: 作者所在专业: 作者所在班级: 作 者 学 号: 作 者 姓 名 : 指导教师姓名: 完 成 时 间 : 2009 年 6 月 18 日1.课程设计任务书课题名称 编译原理课程设计 完成时间 2010.7.14指导教师 杨焱 职称 讲师 学生姓名 李旭昆 班级 207721总体设计要求总体设计要求:每个学生按照课程设计要求,在规定的时间内独立完成。题目:编译程序构造涉及内容:编译器的结构,词法分析、语法分析工作内容及时间进度安排第一天:设计动员,布置课程设计任务,查阅资料,制定方案,进行程序方案设计。第一天:编写和调试程序第三天:编写和调试程序,第四天:编写和调试程序,整理,提交调研报告,撰写设计报告。第五天:验收,提交设计报告,评定成绩。课程设计成果1、调研报告一份,课程设计报告书一份2、源程序清单一份3、成果使用说明书一份2.调试 PL/0 编译程序习题第七题正确的程序为: var a,b,c; begin read(a,b); c:=100; if a0 then begin b:=b+1; write(b) end; write(a,b,c); end. 第八题(1) 扩充条件语句的语法图为: EBNF 的语法描述为:条件语句 if条件then 语句 else语句 (2) 扩充 repeat 语句的语法图为: resent 语句 Until 条件1EBNF 的语法描述为:repeat 循环语句 repeat语句 ;语句until 条件3.课程设计目的:结合课堂上学习的理论知识,通过 C+实现词法分析器,更加深入的掌握词法分析;同时也可以更加了解词法分析的原理。4.课程设计内容:词法分析器If 条件 then 语句 else语句模块划分:字母处理程序、数字处理程序、其他处理程序、主程序模块调用关系图:主程序字母处理程序 数字处理程序 其他处理程序模块流程图:否是 判断文件是否为空初始化设置开始结束读取文件字符判断字符类型输出:非法字符字符处理程序输出相应字符是否有结束标志结束西南交通大学本科毕业设计(论文) 第 6 页5.程序源代码:#include #include #include #include #include / #define NULL 0FILE *fp;char ch;char *keyword34=“auto“,“break“,“case“,“char“,“const“,“continue“,“default“,“do“,“double“,“else“,“enum“,“extern“,“float“,“for“,“goto“,“if“,“int“,“long“,“register“, “return“,“short“,“signed“,“sizeof“,“static“,“struct“,“switch“,“typedef“,“printf“,“union“,“unsigned“,“void“,“volatile“,“while“,“main“;char *operatornum6=“+“,“-“,“*“,“/“,“+“,“-“;char *comparison8=“,“=“,“,“=“,“!=“;char *interpunction8=“,“,“;“,“:=“,“.“,“(“,“)“,“,“;char *biaoshifu6=“%“,“$“,“,“/特殊标识符char *zhushifu3=“/“,“/*“,“*/“;/注释符char *luoji3=“/逻辑运算符/bool search(char searchstr,int wordtype)int i;switch (wordtype)case 1:for(i=0;in“,letter); 西南交通大学本科毕业设计(论文) 第 8 页elseprintf(“n“,letter);return(ch);/char numberprocess(char ch)/数字处理程序int i=-1;char num20;while (isdigit(ch)!=0)num+i=ch;ch=fgetc(fp);if(isalpha(ch)!=0)while(isspace(ch)=0)num+i=ch;ch=fgetc(fp);numi+1=0;printf(“错误!非法标识符:%sn“,num);goto u;numi+1=0;printf(“n“,num);u: return(ch);/char otherprocess(char ch)int i=-1;char other20;if (isspace(ch)!=0)ch=fgetc(fp);goto u;西南交通大学本科毕业设计(论文) 第 9 页while (isspace(ch)=0)ch=fgetc(fp);otheri+1=0;if (search(other,2)printf(“n“,other);else if (search(other,3)printf(“n“,other);elseif (search(other,4)printf(“n“,other);elseif (search(other,5)printf(“n“,other);elseif (search(other,6)printf(“n“,other);elseif (search(other,7)printf(“n“,other);else printf(“错误!非法字符:%sn“,other);u: return (ch);/void main ()char str,c;printf(“*词法分析器*n“);if (fp=fopen(“源程序.txt“,“r“)=NULL)printf(“源程序无法打开!n“);elsestr =fgetc(fp);while (str!=EOF) /文件结束标志if (isalpha(str)!=0)str=letterprocess(str);else西南交通大学本科毕业设计(论文) 第 10 页if (isdigit(str)!=0)str=numberprocess(str);elsestr=otherprocess(str);printf(“词法分析结束,谢谢使用!n“);printf(“点任意键退出!n
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年吊装技术安全试题及答案
- 某汽修厂配件采购办法
- 制药厂环保管理办法
- 某造船厂船体装配规范
- 2026年辽宁省抚顺市中小学教师招聘考试题库(含答案+完整解析)
- 小学主题班会课件:千里之行,始于足下知行合一
- 小学数学五年级上册人民币兑换知识清单
- 初中英语七年级(上)“我是谁”语法探究教案
- 初中语文八年级上册第六单元“圣贤的足迹”思辨性阅读大单元教学案
- 初中地理七年级上册核心知识清单:世界的气候类型判读与影响机制(第三课时)
- 2026中国生物技术发展中心第二批合同制招聘6人笔试参考试题及答案详解
- 三基医师练习题库(附答案)
- 2026年心血管内科(副高)考试试题(专家甄选)带答案
- 金刚石行业深度:行业现状、增量应用、产业链及相关公司深度梳理
- 2026江苏苏州工业园区部分单位招聘工作人员49人备考题库及参考答案详解一套
- 八年级生地会考全真模拟试卷(含参考答案)
- 2026年江苏省南京市公需课培训(专业技术人员继续教育)试题及答案
- 重庆市2026年普通高等学校招生全国统一考试 政治+答案
- 新能源汽车电池回收拆解项目在2025年的技术突破可行性研究报告
- 对外投资合作国别(地区)指南-越南(2025年版)
- 潜水泵安装施工方案及工艺方法
评论
0/150
提交评论