2022年编译原理报告 .pdf
《2022年编译原理报告 .pdf》由会员分享,可在线阅读,更多相关《2022年编译原理报告 .pdf(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、可编辑欢迎下载课 程 实 验 报 告课程名称:编译原理专业:信息安全院系:计算机科学与技术班级:学号:姓名:指导老师:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 20 页 - - - - - - - - - 可编辑欢迎下载名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 可编辑欢迎下载目录实验一 词法分
2、析 . 11.1 实验目的 . 11.2 实验要求 . 11.3 词法分析程序的算法思想. . 21.4 词法分析程序的具体设计. 41.5 词法实验结果及结果分析. . 7实验二 语法分析 . 82.1 实验目的 . 82.2 实验要求 . 82.3 语法分析程序的算法思想. 82.4 语法分析程序的具体设计. 112.5 语法分析程序的结果和结果分析. . 14总结与感悟 . 16名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - -
3、 - 可编辑欢迎下载名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 可编辑欢迎下载实验一词法分析1.1 实验目的设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。1.2 实验要求1.2.1 、待分析的简单的词法(1)关键字: begin if then while do end 所有的关键字都是小写。(2) 运算符和界符 : : = + - * / = = = ; ( ) #(3)其他单词是标识符( ID)和整型常数
4、( SUM ) ,通过以下正规式定义:ID = letter (letter | digit)*NUM = digit digit*(4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM 、运算符、界符和关键字,词法分析阶段通常被忽略。1.2.2 、 各种单词符号对应的种别码如表1所示:表 1 各种单词符号对应的种别码单词符号种别码单词符号种别码begin1:17If2:=18Then320wile421do523lettet(letter|digit)*10=24dight dight*11=25+13;2614(27*15)28/16#01.2.3 、 词法分析程序的功能名师资
5、料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 20 页 - - - - - - - - - 可编辑欢迎下载输入:所给文法的源程序字符串。输出:二元组( syn,token或 sum )构成的序列。其中: syn 为单词种别码; token为存放的单词自身字符串; sum为整型常数。例如:对源程序begin x:=9: if x9 then x:=2*x+1/3; end #的源文件,经过词法分析后输出如下序列:(1,begin)(10,x)(18,:=)(11,9)(26,;
6、)(2,if)1.3 词法分析程序的算法思想算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。1.3.1 主程序示意图:主程序示意图如图1.1 所示。其中初始包括以下两个方面:图 1.1 词法分析主程序示意图开始置初值调用扫描子程序输出单词二元组输入串结束 ? 否结束是名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 可编辑欢迎下载 关键字表
7、的初值。关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表) ,当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:Char *rwtab6 = “begin ”, “if ”, “then”, “while ”, “do”, “end”,;(2)程序中需要用到的主要变量为syn,token和 sum 。首先设置 3 个变量: token 用来存放构成单词符号的字符串;sum用来整型单词; syn 用来存放单词符号的种别码。扫描子程序scaner 主要部分流程如图 1.2 所示。图 1.2 词法分析
8、程序流程开始变量初始化忽略空格是否文件结束 ? 否返回是拼数拼字符串字母Syn=11关键字 ?Syn=10否是Syn 为对应关键字的种别码对不同符给出相应的 syn 值报错其他符号运算符界符等符号返回数字名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 可编辑欢迎下载1.4 词法分析程序的具体设计1.4.1 数据结构单词二元组的结构typedef struct int typenum; / 用于存储该字符串的种别码;char *
9、word; / 用于存储字符串;在本次实验中, 每一个特定的字符串, 相应的输出为其单词种别码和该字符串,所以我按书中的要求设计一个特定的结构保存这两个值,便于程序的编写。源程序字符缓冲区: input255单词缓冲区: token255源程序字符指针: p_input单词缓冲区指针: p_token关键字数组:*rwtab=begin,if,then,while,do,end,_KEY_WORD_END1.4.2 scaner函数的设计1)对数字串和标识符的扫描:设计思想:首先判断第一个输入的字符是否是数字或者是字母,读入下一个字符,判断是否是数字或是字母,如果是连接,并接着读下一个字符,否
10、则回退一个字符,得到的数字串或者标识符,如果是标识符,还需要再进行一次判断,该标识符是否为关节字, 最终返回相应的 WORD 结构。具体的代码实现如下所示:if(letter()while(letter()|digit()concat();m_getch();名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 可编辑欢迎下载retract();myword-typenum=reserve();myword-word=token;r
11、eturn myword;else if(digit()while(digit()concat();m_getch();retract();myword-typenum =11;myword-word =token;return myword;2)对=,+,-,*等只有一个字符组成的符号进行扫描:读入一个字符,判断其是否等于相应的符号, 如果是返回该字符对应的WORD结构,否则对将该字符与下一个符号比对,直到匹配成功或返回错误为止,具体的代码实现如下所示:case= : m_getch();if(ch=)myword-typenum =29;myword-word =;return mywor
12、d;retract();myword-typenum =25;myword-word =;return myword;break;case+:myword-typenum =13;名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 可编辑欢迎下载myword-word =+;return myword;break;case-:myword-typenum =14;myword-word =-;return myword;break
13、;3)对= 、:=等有两个字符组成的符号的扫描:以=为例,首先读入一个字符,判读其是否等于号,如果相等,再读入一个字符,判断其时候等于 =号, 如果相等返回 =号对应的 WORD 结构,否则返回 号对应的 word 结构,并回退一个字符。 如果都不相等, 该字符与下一个符号比对,直到匹配成功或返回错误为。具体的代码如下所示。case:if(inputp_input=)myword-typenum =18;myword-word =:=;return myword;case:m_getch();if(ch=)myword-typenum =24;myword-word =;return mywo
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年编译原理报告 2022 编译 原理 报告
限制150内