欢迎来到天天文库
浏览记录
ID:49735394
大小:206.00 KB
页数:14页
时间:2020-03-04
《编译原理论文( X页).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、《编译原理》论文题目词法分析器的设计与实现学号专业班级指导老师2015年6月15一、引言4二、词法分析器的设计52・1词的内部定义52.2词法分析器的任务及功能52.2.1任务52.2.2功能:62・3单词符号对应的种别码:6三、词法分析器的实现3.1主程序不意图:73.2函数定义说明3・3程序设计实现及功能说明3.3.1关键字3.3.2关键字的定义3.3.3符合的关键字的查找四、词法分析程序的C语言源代码:五、结果分析:12摘要:词法分析是中文信息处理中的一项基础性工作。词法分析结果的好坏将直接影响中文佶息处理上层应用的效果。通过权威的评测和实际应用表明,
2、IRLAS是一个高精度、高质量的、高可靠性的词法分析系统。众所周知,切分歧义和未登录词识别是中文分词中的两大难点。理解词法分析在编译程序中的作用,加深对有穷自动机模型的理解,掌握词法分析程序的实现方法和技术,用C语言对一个简单语言的子集编制一个一遍扫描的编译程序,以加深对编译原理的理解,掌握编译程序的实现方法和技术。关键词:词法分析器扫描器单词符号预处理运用C语言设计词法分析器,由指定文件读入预分析的源程序,经过词法分析器的分析,将结果写入指定文件。本程序是在VisualStudio环境下,使用C语言作为开发工具。基于实验任务的内容及口的,实现初步的需求分析
3、,具备词法分析器的基本功能和整体构架。逐步细化其功能,做到相应模块的具体化。画出未成熟的流程图,确定整体设计的走向,在一肚范围内约束编程活动,确保没有大的问题及缺陷存在,然后通过将来的具体的编程设计完善流程图。完成计算机翻译过程的关键阶段,它为后面的语法分析、语义分析做好准备,打好基础,以便快速地、高质量地牛成目标语言程序。二、词法分析器的设计由于我们规定的程序语句中涉及单词较少〃故在词法分析阶段忽略了单词输入错谋的检查"而将编译程序的重点放在屮间代码生成阶段$词法分析器的功能是输入源程序〃输出单词符号$规定输出的单词符号格式为如下的二元式%!单词种别〃单词
4、自身的值#2.1词的内部定义对常量,变量,临时变量,保留关键字(if,wh订e,begin,else,do等)、关系运算符、逻辑运算符、分号、括号等,规定其内部定义如附表所示附表词的内部定义表符号种别編码说明S-tf0s—else2关键字ekes—while3关握字whiles—do5关垣字&>for1关Zfora7赋值语句5cnucolon8M••e9布尔表达式jirighao10S11语甸L12复合诺句Icmpsy15絡时变応Ea18Band(B^S-)Eo19Bor(Bll)plu<34+time*36Ixxvmr*38■—••:—op—and39"a
5、nd*op—or40Morwop—not41"not*rop42关系运算符lparmt48rparrnt49・)■klcnt56intcun^t572.2词法分析器的任务及功能2・2.1任务就编译器基木结构而言,词法分析(lexicalanalysis)是编译过程的第一阶段。实际上,在词法分析Z前,有些编译器模型存在编译预处理阶段,C语言就是一个典型的例了。不过,大多数Pascal编译器祁不存在预处理器。木书对编译预处理不作讨论。词法分析的任务是从左到右扫描与分析构成源程序的字符流(字符串),把字符流分解为多个单词(token)o每个单词都是具有独立含义且不
6、可再分割的字符序列。在编译器框架屮,完成词法分析任务的模块称为词法分析器。2.2.2功能:词法分析器的基木功能是,按照语言的定义规则,逐个地读入源程序的符号,识别出对语言有意义的符号串,即单词符号;然后分析单词符号的属性,并把单词符号及其属性填写在表中;同时把源程序改造成等价的计算机内部表示——单词记号,以便编译的后续阶段使用。(1)识别岀源程序中的各个单词符号,并将其转换成内部编码形式;(2)删除无用的空白字符、冋车字符以及其他菲实质性字符;(3)删除注释(4)进行词法检杳,报告所发现的错谋。2.3单词符号对应的种别码:单词符号对应的种别码单词符号种别码单
7、词符号种别码bgin1•■17If2■18Then3<20wile4<>21do5<=22end6>23lettet.(letter
8、digit)*10>二24clightdight*11二25+13■*26—14(27*15)28/16#0三、词法分析器的实现编写词法分析器,词法分析器能够识别关系算符,词法分析器能够识别标识符和关键字,词法分析器能够识别无符号数。编制一个能够分析三种整数、标识符、主要运算符和主要关键字的词法分析器。词法分析是从左向右扫描每行源程序的符号,拼成单词,换成统一的二元式(单词种别码,单词符号的属性值)表示。对给定的程序通过词法分
9、析器识别一个个单词符号,并以二元式(单词种别码,单词
此文档下载收益归作者所有