词法分析器课程设计报告_精品.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
词法分析器课程设计报告_精品

2009-2010学年第二学期 《编译原理》课程设计报告 学院(系): 班 级: 学生姓名: 学 号: 指导教师: 时间: 2010 年 6 月 目录 1. 课程设计的目的 1 2.课程设计的内容及要求 1 2.1.课程设计内容 1 2.2.课程设计要求 2 2.3.运行环境 3 2.4.程序的不足 3 3.问题分析及相关原理介绍 3 3.1. 编译程序介绍 3 3.2.各部分的功能介绍及分析 3 3.3. 算法实现及模拟 4 3.3.1总体流程图 4 3.3.2详细的流程图 5 4.设计思路及关键问题的解决方法 7 4.1.设计思路及关键问题 7 4.1.1处理时机 7 4.1.2一个棘手问题 8 4.2.解决方法 8 5.结果及测试分析 8 5.1.待分析程序的部分内容 8 5.2.运行结果 9 6.总结 10 6.1.设计过程 10 6.2.困难与收获 11 参考文献 11 附录 11 1.课程设计的目的 通过课程设计实践,树立正确的设计思想综合运用所学的理论知识掌握设计的一般方法与步骤,深入掌握设计的基本理论、方法和步骤…|z|A|…|Z 数字--0|…|9 运用C语言设计词法分析器,由指定文件读入预分析的源程序,经过词法分析器的分析,将结果写入指定文件。 本程序是在Visual Studio环境下,使用C语言作为开发工具。基于实验任务的内容及目的,实现初步的需求分析,具备词法分析器的基本功能和整体构架。逐步细化其功能,做到相应模块的具体化。画出未成熟的流程图,确定整体设计的走向,在一定范围内约束编程活动,确保没有大的问题及缺陷存在,然后通过将来的具体的编程设计完善流程图。 程序设计的具体内容: 在实际的设计中,预分析程序保存在文本文件sourcecode.txt中,该文件不能由执行程序自动创建,需要在程序执行前预先提供,程序拥有只读的权限。程序逐个字符的分析源程序,能够识别标识符,整数,分界符,并分别把分析得到的字符写入相应文档:keyword,words,digit,single,double;其它字符标示为无法识别,记录在error文档中。程序结束后,将最总结果写入文件Dualistic_formula,该文件的内容包括统计结果(排除重复出现的字符)和二元式。这七个文件会在程序执行时自动创建,程序结束时,关闭文件,但保留文件的内容,以供查看和检验,测试。 不同类别的字符通过相应的函数模块来分析识别。普通标识符由函数int word(char ch)来识别,并进一步由函数int keyword(char key[])来分离普通标识符和关键字;数字有函数int digit(char ch)来识别;分界符由函数int delimiter(char ch)来识别;其他字符即为非法字符。 该程序中,全局变量共有两个int characters_exist=0和int countoffinal=0。characters_exist用来判断是否是纯数字,countoffinal用来记录finalresult函数执行的次数。统计主函数在内,总共16个函数模块,除了前面说到得识别字符的函数外,还有对文件进行操作的函数,对数组操作的函数和实现显示功能的函数。主函数中有六个文件指针,十一个字符数组,十个实现不同功能的变量。在程序设计过程中及时注释,方便复读和检测。 2.2.课程设计要求 必须运用C语言设计词法分析器,由指定文件读入预分析的源程序,从左至右 描源程序的字符串,按照词法规则(正则文法规则)识别出一个个正确的单词,并转换成该单词相应的二元式(种别码、属性值)交给语法分析使用。 本程序规定输出用KeyWord代表关键字,Word代表普通标识符,Digit代表阿拉伯数字,SingleWord代表单分界符,DoubleWord代表双分界符,ERROR代表无法别的字符。了解和掌握词法分析的方法;编程实现给定源语言程序的词法分析器;利用该分析器扫描源语言程序的字符串,按照给定的词法规则,识别出单词符号作为输出,发现其中的词法错误。不同类别的字符通过相应的函数模块来分析识别。 针对该程序设计的具体设计: 编程实现一个简单的词法分析器,可以对一个文件进行词法分析处理。程序能够正确识别文法所规定的任何组织形式的字符组合。例如在连续的分界符中,如何分离出单分界符和双分界符;字符中间的空格如何处理,源程序中往往出现大量连续的空格,若是全部记录下来,没用实际意义,且又浪费时间和空间,这样又如

您可能关注的文档

文档评论(0)

rovend + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档