- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
仲恺农业工程学院 编译原理课程设计 课程设计题目:词法分析程序 姓 名 院 (系) 计算机科学与工程学院 专业年级 计算机科学与技术075班 学 号 200710214513 指导教师 日 期 2009年12月21日--2009年12月25日 目 录 1、需求分析 1 2、概要设计 1 2.1总体设计: 1 2.2模块设计: 1 2.3模块说明: 1 2.4功能设计: 2 2.5界面设计 2 3、 详细设计 2 3.1词法分析程序:完成初始化 2 3.2词法分析初始化程序 4 3.3识别保留字和标识符 4 3.4识别整数和实数 6 3.5处理除号和注释 8 3.6识别字符 9 3.7识别其他单词 9 3.8输出识别出的单词 10 3.9出错处理 12 3.10查填符号表 12 3.11词法分析流程图 14 4、 测试分析 14 4.1被测试的程序为正确的源程序例1: 14 4.2被测试的程序为错误的源程序例2: 15 4.3被测试的程序为错误的源程序例3: 16 4.4被测试的程序为错误的源程序例4: 16 5、用户手册 17 6、课程总结 18 7、参考文献 18 词法分析程序 1、需求分析 该程序从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号的机内表示。将词法分析程序作为单独的一遍,组织源程序的输入。拼出单词并转换成机内表示形式,形成token文件(单词序列)、Symble文件(符号表文件)。删除注释、空格和无用符号(回车换行符等)。发现并定位词法错误从而列表打印错误信息。 2、概要设计 2.1总体设计: 程序是在VC++环境下开发的,有相关的操作说明,还有操作简单的特点。程序的设计思想是基于编译原理的词法分析思想。 2.2模块设计: 模块结构图 图 2-1 程序结构图 2.3模块说明: 本程序分为三个模块: (1)初始化模块:完成初始化(准备读写文件),完成保留字编码表初始化。 (2)识别处理模块:对保留字和标识符、整数和实数、除号和注释、字符、其他单词的识别。 (3)返回处理结果模块:出错处理、单词在符号表中则返回0,否则返回1。 2.4功能设计: 能对源程序进行分析;程序运行开始,提示要求输入要被扫描的源程序的文件名,例如source1.txt,source2.txt等。 能检查并处理某些词法错误。 应给出的错误信息包括:总的出错个数、每个错误的编号、错误所在的行号及简要错误说明。至少处理以下三种词法错误,其他错误暂不考虑,即认为不会出现:非法字符。处理方式是删去该字符(即不写入token文件)。不正确的单词,包括以下几种情况数字开头的数字、字母串,如4f3。实数中出现两个小数点,如3.14.15。实数的小数部分出现字母,如5.26B78。处理方法:截去后面出错部分。 2.5界面设计 系统主界面如下图 图2-2 主界面图 详细设计 3.1词法分析程序:完成初始化,并循环调用子模块完成单词识别。 void Scanner() { int i=0; error_count=0; ScannerInit(); printf( ****************************************\n); printf( *词法分析器\n); printf( ****************************************\n); printf(输入源文件名:); for(;;) { scanf(%c,filename[i]); //读入源程序文件名 if(filename[i]==10) break; i++; } filename[i]=\0; if((SourceFin=fopen(filename,rt))==NULL) { printf(无法打开文件 %s.\n,filename); exit(1); } if((TokenFout=fopen(token.txt,wt+))==NULL) //打开单词表文件 { printf(无法打开文件 token.txt.\n); exit(1); } if((SymbleFout=fopen(symble.txt,wt+))==NULL) //打开符号表文件 { printf(无法打开文件 symble.txt.\n); exit(1); } ch=fgetc(SourceFin); /*读取第一个字符*/ while(ch!=EOF) /*循环处理字符串*/ {
您可能关注的文档
- 城市轨道交通课程设计-110kV主变电所设计.doc
- 单片机原理及应用(1)课程设计报告-基于51单片机的秒表计时系统.doc
- 管理信息系统课程设计说明书--学生选修课管理信息系统.doc
- 计算机网络课程设计--DNS中继服务器实验报告.docx
- 计算机网络课程设计报告--简单Web服务器设计与实现.doc
- 计算机网络课程设计--简单web服务器的设计与实现.doc
- 节电灯课程设计.doc
- 课程设计--18mm斜凹槽拨叉设计.doc
- 课程设计--900吨锅炉脱硫设计.doc
- 课程设计--AD590的应用.doc
- 编译原理课程设计报告--词法分析器-语法分析器-lex词法分析器.doc
- 编译原理课程设计报告任务书--DO-WHILE循环语句的翻译程序设计(递归下降法,输出四元式).docx
- 编译原理课程设计报告--算符优先分析表生成模拟.doc
- 编译原理课程设计报告--中间代码生成器设计-逆波兰式的生成.doc
- 编译原理课程设计报告--一个简单的编译器.doc
- 操作系统课程设计__设备管理实现_源代码.doc
- 操作系统课程设计--Nachos设计.doc
- 操作系统课程设计--程序实现页面置换算法设计(吃水果问题).doc
- 编译原理课程设计--利用词法自动生成实现词法扫描器.doc
- 操作系统课程设计--模拟请求页式管理.doc
最近下载
- 滤油器体的工艺规程及夹具设计.doc VIP
- 2025年3月22日山东事业单位统考《行测》真题(含答案).pdf VIP
- 2025-2026学年人教版(2024)小学体育与健康二年级全一册教学计划及进度表(第一学期).docx
- 建设单位安全管理体系如何建立.docx VIP
- 苯妥英钠的合成.pdf VIP
- 中国糖尿病肾脏病基层管理指南解读PPT课件.pptx VIP
- 陕西省专业技术人员继续教育答案《党的二十届三中全会精神解读与高质量发展》(1).pdf VIP
- 2024年全国中考数学考试大纲 .pdf VIP
- 聚乙酸乙烯酯乳液(粘胶剂)-安全技术说明书MSDS.pdf
- 体外膜肺氧合ECMO讲解.pptx VIP
文档评论(0)