实验一 源程序的预处理及词法分析程序设计

实验一 源程序的预处理及词法分析程序设计

ID:15490217

大小:50.50 KB

页数:3页

时间:2018-08-03

实验一 源程序的预处理及词法分析程序设计_第1页
实验一 源程序的预处理及词法分析程序设计_第2页
实验一 源程序的预处理及词法分析程序设计_第3页
资源描述:

《实验一 源程序的预处理及词法分析程序设计》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一源程序的预处理及词法分析程序设计(6学时)一、实验目的设计并实现一个包含预处理功能的词法分析程序,加深对编译中词法分析过程的理解。二、实验要求1、实现预处理功能源程序中可能包含有对程序执行无意义的符号,要求将其剔除。首先编制一个源程序的输入过程,从键盘、文件或文本框输入若干行语句,依次存入输入缓冲区(字符型数据);然后编制一个预处理子程序,去掉输入串中的回车符、换行符和跳格符等编辑性文字;把多个空白符合并为一个;去掉注释。2、实现词法分析功能输入:所给文法的源程序字符串。输出:二元组(syn,token或

2、sum)构成的序列。其中,syn为单词种别码。Token为存放的单词自身字符串。Sum为整型常量。具体实现时,可以将单词的二元组用结构进行处理。3、待分析的C语言子集的词法1)关键字mainifthenwhiledostaticintdoublestructbreakelselongswitchcasetypedefcharreturnconstfloatshortcontinueforvoiddefaultsizeofdo所有的关键字都是小写。2)运算符和界符+-*/::=<<><=>>==;()#3)其他标

3、记ID和NUM通过以下正规式定义其他标记:ID→letter(letter

4、digit)*NUM→digitdigit*letter→a

5、…

6、z

7、A

8、…

9、Zdigit→0

10、…

11、9…4)空格由空白、制表符和换行符组成空格一般用来分隔ID、NUM、专用符号和关键字,词法分析阶段通常被忽略。4、各种单词符号对应的种别码表1各种单词符号的种别码单词符号种别码单词符号种别码main1;41if2(42then3)43while4int7do5double8static6struct9ID25break10NUM26els

12、e11+27long12-28switch13*29case14/30typedef15:31char16:=32return17<33const18<>34float19<=35short20>36continue21>=37for22=38void23default39sizeof24do40#05、词法分析程序的主要算法思想算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到的单词符号的第一个字符的种类,拼出相应的单词符号。1.主程序示意图主程序示意图如图1所示。置初

13、值调用扫描子程序输出单词二元组输入串结束结束否是图1词法分析主程序示意图其中初值包括如下两方面:(1)关键字表初值关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:char*rwtab[27]={“main”,”if”,”then”,”while”,”do”,”static”,”int”,”double”,”struct”,”break”,”else”,”lon

14、g”,”switch”,”case”,”typedef”,”char”,”return”,”const”,”float”,”short”,”continue”,”for”,”void”,”default”,”sizeof”,”do”};(2)程序中需要用到的主要变量:syn,token和sum。2.扫描子程序的算法思想首先设置三个变量:token用来存放构成单词符号的字符串;sum用来存放整型单词;syn用来存放单词符号的种别编码。扫描子程序主要部分流程如图2所示。变量初始化忽略空格是是否文件结束返回否其他符号

15、运算符,界符等符号字母数字否对不同符号给出相应的syn值是否关键字是Syn为对应关键字的单词种别码返回报错拼数拼字符串Syn=25Syn=26图2词法分析程序流程三、实验报告要求1.写出编程思路、源代码(或流程图);2.写出上机调试时发现的问题,以及解决的过程;3.写出你所使用的测试数据及结果;4.谈谈你的体会。5.上机6小时,完成实验报告2小时。

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

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

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