单词的词法分析程序设计

单词的词法分析程序设计

ID:32334313

大小:45.00 KB

页数:5页

时间:2019-02-03

单词的词法分析程序设计_第1页
单词的词法分析程序设计_第2页
单词的词法分析程序设计_第3页
单词的词法分析程序设计_第4页
单词的词法分析程序设计_第5页
资源描述:

《单词的词法分析程序设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、单词的词法分析程序设计1实验题目对于给定的源程序(如C语言或Pascal等),要求从组成源程序的字符行中寻找出单词,并给出它们的种别和属性——输出二元组序列。以便提供给语法分析的时候使用。要求能识别所有的关键字,标志符等,并且能够对出先的一些词法规则的错误进行必要的处理。2实验内容和要求1.给出语言的词法规则描述2.要求识别标识符、关键字、整常数、字符常数、浮点常数等3.要求能识别单界符:+,-,÷,×,:等符号4.双界符:/*,:=,等5.要求完成一些相关的辅助任务。一个任务实滤掉源程序中的注释

2、、空格、制表符、换行符;另一个任务是使编译器能够将发现的错误信息与源程序的出错位置联系起来,以及错误的类型等。3待分析的词法文件文件名称为:C:1.txt(分析结果见7:程序结果)4实验分析与设计过程实验分析与设计过程1.实验说明分析语言的选择:由于对C语言比较熟悉,我选择分析的程序为C语言编写的程序。2.词法分析器的功能以及输出形式分析1)功能:i.对于输入的C源程序,输出单词符号,把相应的源程序的字符串转换成单词符号的序列。ii.保存符号表,为所有的标识符建立一个符号表,以便于在语法和语义分

3、析的时候使用。iii.错误输出与提示2)结果输出形式:i.对于token用二元组输出,ii.符号表可以单独输出到文件中iii.错误输出到界面即可3.单词符号的表示各种关键字(保留字、基本字),各种运算符、各种分界符,都用一个种别码来标识。例:关键字break、保留字asm、运算符”+”、在源程序中1,2,3表示。即所规定得到的中别码对应的词法描述为:1为关键字2为标志符3为常数4为运算符或界符5算法描述由于这是一个用高级语言编写一个词法分析器,使之能识别输入串,并把分析结果(单词符号,标识符,关键

4、字等等)输出.输入源程序,输入单词符号,本词法分析器可以辨别关键字,标识符,常数,运算符号和某些界符,运用了文件读入来获取源程序代码,再对该源程序代码进行词法分析,这就是词法分析器的基本功能.当词法分析器调用预处理子程序处理出一串输入字符放进扫描缓冲区之后,分析器就从此缓冲区中逐一识别单词符号.当缓冲区里的字符串被处理完之后,它又调用预处理子程序来处理新串.编写的时候,使用了文件的输入和输出,以便于词法分析的通用型,同时在文件输出时,并保存在输出文件output文件中。从左到右扫描程序,通过初始化

5、:1为关键字;2为标志符;3为常数;4为运算符或界符。扫描过程如下:1.指针扫描所打开的文件首,如果是字母开始处理字符关键字或者标识符2.为单字符运算、限界符,写入输出文件并将扫描文件指针回退一个字符;3.为双字符运算、限界符,写输出文件;4.读入的下一个字符为文件结束符;5.只考虑是否为单字符运算、限界符,若是,写输出文件6程序框图如下Main输入正确的文件路径文件路径正确初始化打开文件扫描指针*fp若指针不为空While(1)退出(exit)Enterq/Qtoquit初始化函数(各个分析表)

6、调用扫描scanner指针*fp指针指向output(输出结果保存的文件)中判断fp是否指向文件的末尾每扫描一个,用一个*fp执政写入一个二元组进入output*fp扫描指针后移7程序结果如下(源程序见磁盘)8实验感想词法分析是编译的第一个阶段,它的主要任务是从左至右扫描整个程序的每个字符,将源程序变换为单词序列,以其内部的表示形式提供给语法分析的各阶段。而做这个实验是使用的是c语言,并没有使用自动生成的词法分析器LEX,但是在做这个实验的时候参考了相关的书籍之后,使用文件打开,并保存输出结果的方

7、式,这样比较能够使程序的通用性加强,同时作为刚开始接触到编译的前端的我,发现了自己还有许多的不足之处。为了以后的语法分析能够结构更加的明晰,那么就必须认真的研读老师所给的相关资料,同时要学会分析较完整定义的相关文法,使之更为直接明了。这个实验主要花费的时间,并不是在于词法分析即源文件中的scan扫描程序阶段,而是在设置文件的出错以及输出,输入阶段,这也说明在原来学习文件调用打开的时候并没有很熟练的运用文件之间的调用的相关操作,这也提醒我在今后学习语言的过程中要细致,要实践。

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。