简单编译器编译原理的设计.doc
《简单编译器编译原理的设计.doc》由会员分享,可在线阅读,更多相关《简单编译器编译原理的设计.doc(26页珍藏版)》请在沃文网上搜索。
1、编译原理课程设计简单编译器简单编译器目 录1 词法分析21.1 实验目的21.2 实验要求21.2.1待分析的简单的词法21.2.2 各种单词符号对应的种别码:21.2.3 词法分析程序的功能:31.3 词法分析程序的算法思想:31.3.1 主程序示意图:31.3.2 扫描子程序的算法思想:41.3.3 词法分析程序的C语言程序源代码:61.3.4 结果分析:61.3.5 总结:72 语法分析82.1 实验目的82.2实验要求82.2.1 待分析的简单语言的语法82.2.2 实验算法结构8语法分析程序的算法思想82.3 结果分析:132.4 总结:153 语义分析程序163.1 实验目的:16
2、3.2 实验要求:163.3 算法思想:163.3.1 程序结构图163.3.2 设置语义过程203.3.3 函数lrparser 在原来语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列。在实验中我们只对表达式、赋值语句进行翻译。213.3.4 简单赋值语句的翻译文法213.4 结果分析223.5 总结:251 词法分析(李梦珂 201181216 负责)1.1 实验目的设计、编制并调试一个词法分析程序,加深对词法分析原理的理解。1.2 实验要求设计、编制并调试一个词法分析程序,三人一组。1.2.1待分析的简单的词法(1)关键字: int if then else while do
3、 read write所有的关键字都是小写。(2)运算符和界符: := = + - + - * / = = ; ( ) #(3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:ID = letter (letter | digit)*NUM = digit digit*(4) 空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。 1.2.2 各种单词符号对应的种别码:表1.1 各种单词符号对应的种别码单词符号种别码 单词符号种别码int1+17If2-18Then3:=19else420while5!=21do623wr
4、ite8=24lettet(letter|digit)*10=25dight dight*11;26=12(27+13)28-1430*15!31/16:32 ,3335 36 1.2.3 词法分析程序的功能:输入:所给文法的源程序字符串。输出:二元组(syn,token或sum)构成的序列。其中:syn为单词种别码; token为存放的单词自身字符串; sum为整型常数。例如:对源程序输入如下: Int x,y; X:=2*y; If(x5) Then x:=2*x+2/3;#后经词法分析输出如下序列:( 35 (int 1)(x 10)(, 33)(y 10) (;26)(x 10)1.3
5、 词法分析程序的算法思想:算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。1.3.1 主程序示意图:主程序示意图如图1.1所示。其中初始包括以下两个方面: 关键字表的初值。关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:Char *rwtab6 = “int”, “if”, “then”, “else”,“while”, “do”, “read”,”wr
6、ite”; 图1.1(2)程序中需要用到的主要变量为syn,token和sum 1.3.2 扫描子程序的算法思想:首先设置3个变量:token用来存放构成单词符号的字符串;sum用来整型单词;syn用来存放单词符号的种别码。扫描子程序主要部分流程如图1.2所示。 图 1.21.3.3 词法分析程序的C语言程序源代码:1.3.4 结果分析:输入如下: Int x,y; X:=2*y; If(x5) Then x:=2*x+2/3;#后经词法分析输出如下序列:( 35 (int 1)(x 10)(, 33)(y 10) (;26)(x 10) 如图1.3所示: 图1.31.3.5 总结:词法分析的
7、基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。通过本试验的完成,更加加深了对词法分析原理的理解。 2 语法分析2.1 实验目的编制一个递归下降分析程序,实现对词法分析程序所提供的单词序列的语法检查和结构分析。2.2实验要求利用C语言编制递归下降分析程序,并对简单语言进行语法分析。2.2.1 待分析的简单语言的语法用扩充的BNF表示如下:=;:=;:=:=ID:=:=+ | -:=* | /:=ID | NUM | ()2.2.2 实验算法结构输入单词串,以“#”结束,如果是文法正确的句子,则输出成功信息,打印
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 编译器 编译 原理 设计