编译原理课设-(中版).doc

编译原理课设-(中版).doc

ID:55170357

大小:439.50 KB

页数:26页

时间:2020-04-30

编译原理课设-(中版).doc_第1页
编译原理课设-(中版).doc_第2页
编译原理课设-(中版).doc_第3页
编译原理课设-(中版).doc_第4页
编译原理课设-(中版).doc_第5页
资源描述:

《编译原理课设-(中版).doc》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、编译原理课程设计简单编译器学院(系):电子信息与电气工程学部学生姓名:李梦珂学号:班级:电计1101同组人:宫丽迪电计1101陈笛电计1101大连理工大学DalianUniversityofTechnology1编译原理课程设计——简单编译器目录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实验目的8

2、2.2实验要求82.2.1待分析的简单语言的语法82.2.2实验算法结构8语法分析程序的算法思想82.3结果分析:132.4总结:153语义分析程序163.1实验目的:163.2实验要求:163.3算法思想:163.3.1程序结构图163.3.2设置语义过程203.3.3函数lrparser在原来语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列。在实验中我们只对表达式、赋值语句进行翻译。213.3.4简单赋值语句的翻译文法213.4结果分析223.5总结:25–25–编译原理课程设计——简单编译器1词法分析(李梦珂负责)1.1实验目的设计、编制并调试一个词法分析程序,加深对词

3、法分析原理的理解。1.2实验要求设计、编制并调试一个词法分析程序,三人一组。1.2.1待分析的简单的词法(1)关键字:intifthenelsewhiledoreadwrite所有的关键字都是小写。(2)运算符和界符::==+-++--*/<<=!=>>==;(){}#(3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:ID=letter(letter

4、digit)*NUM=digitdigit*(4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。1.2.2各种单词符号对应的种别码:表1.1各种单词符号对应

5、的种别码单词符号种别码单词符号种别码int1++17If2--18Then3:=19else4<20while5!=21do6<=22read7>23write8>=24–25–编译原理课程设计——简单编译器lettet(letter

6、digit)*10==25dightdight*11;26=12(27+13)28-1430*15!31/16:32,33{35}361.2.3词法分析程序的功能:输入:所给文法的源程序字符串。输出:二元组(syn,token或sum)构成的序列。其中:syn为单词种别码;token为存放的单词自身字符串;sum为整型常数。例如:对源程序输入如下:{In

7、tx,y;X:=2*y;If(x>5)Thenx:=2*x+2/3;}#后经词法分析输出如下序列:({35}(int1)(x10)(,33)(y10)(;26)(x10)……1.3词法分析程序的算法思想:算法的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。1.3.1主程序示意图:主程序示意图如图1.1所示。其中初始包括以下两个方面:⑴关键字表的初值。–25–编译原理课程设计——简单编译器关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹

8、配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:Char*rwtab[6]={“int”,“if”,“then”,“else”,“while”,“do”,“read”,”write”};图1.1(2)程序中需要用到的主要变量为syn,token和sum1.3.2扫描子程序的算法思想:首先设置3个变量:①token用来存放构成单词符号的字符串;②sum用来整型单词;③syn用来存放单词符号的种别码。扫描子程序主要部分流程如图1.2所示。–25–编译原理课程设计——简单编译器图1.2–25–编译原理课程设计——简单编译器1.3.3词法分析程序的C语言程序源

9、代码:1.3.4结果分析:输入如下:{Intx,y;X:=2*y;If(x>5)Thenx:=2*x+2/3;}#后经词法分析输出如下序列:({35}(int1)(x10)(,33)(y10)(;26)(x10)……如图1.3所示:图1.3–25–编译原理课程设计——简单编译器1.3.5总结:词法分析的基本任务是从字符串表示的源程序中识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。

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

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

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