《编译原理报告》word版

《编译原理报告》word版

ID:30115687

大小:286.46 KB

页数:15页

时间:2018-12-27

《编译原理报告》word版_第1页
《编译原理报告》word版_第2页
《编译原理报告》word版_第3页
《编译原理报告》word版_第4页
《编译原理报告》word版_第5页
资源描述:

《《编译原理报告》word版》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、编译原理实验报告课程实验报告课程名称:编译原理(词法分析、语法分析)专业班级:信息安全1302班学号:姓名:指导教师:报告日期:2015/11/8计算机科学与技术学院编译原理实验报告编译原理实验报告目录实验一:词法分析11.1实验目的11.2实验要求11.2.1待分析的简单的词法11.2.2各种单词符号对应的种别码:11.3词法分析程序的算法思想:21.3.1主程序示意图21.3.2扫描子程序的算法思想:21.4实验结果41.5实验小结5实验二:语法分析52.1实验目的52.2实验要求52.2.1待分析的简单的语法52.2.2语法分析

2、程序的功能62.3词法分析程序的算法思想62.4实验结果112.5实验小结11编译原理实验报告编译原理实验报告实验一:词法分析1.1实验目的按<<>编译原理>课程的要求,根据词法分析器的基本原理,设计、编制并试一个词法分析程序,加深对词法分析原理的理解。1.2实验要求1.2.1待分析的简单的词法1)关键字:beginifthenwhiledoend2)运算符和界符::=+-*/<<=<>>>==;()#3)其他单词是标识符(ID)和整型常数(SUM),通过以下正规式定义:ID=letter(letter

3、digit)*NUM=digi

4、tdigit*4)空格有空白、制表符和换行符组成。空格一般用来分隔ID、SUM、运算符、界符和关键字,词法分析阶段通常被忽略。1.2.2各种单词符号对应的种别码:表1.1各种单词符号对应的种别码单词符号种别码单词符号种别码begin1:17If2:=18Then3<20while4<>21do5<=22end6>23lettet(letter

5、digi)*10>=24dightdight*11=25第11页编译原理实验报告+13;26—14(27*15)28/16#01.3词法分析程序的算法思想:算法的基本任务是从字符串表示的源程序中

6、识别出具有独立意义的单词符号,其基本思想是根据扫描到单词符号的第一个字符的种类,拼出相应的单词符号。1.3.1主程序示意图主程序示意图如图1.1所示。其中初始包括以下两个方面:1)关键字表的初值关键字作为特殊标识符处理,把它们预先安排在一张表格中(称为关键字表),当扫描程序识别出标识符时,查关键字表。如能查到匹配的单词,则该单词为关键字,否则为一般标识符。关键字表为一个字符串数组,其描述如下:Char*rwtab[6]={“begin”,“if”,“then”,“while”,“do”,“end”,};2)程序中需要用到的主要变量为s

7、yn,token和sum。1.3.2扫描子程序的算法思想:首先设置3个变量:①token用来存放构成单词符号的字符串;②sum用来整型单词;③syn用来存放单词符号的种别码。扫描子程序主要部分流程如图1.2所示。第11页编译原理实验报告图1.1主程序示意图变量初始化忽略空格是否文件结束?返回是否第11页编译原理实验报告返回拼字符串是否关键字?syn为对应关键字的单词种别码拼数syn=10syn=1111对不同符号给出相应的syn值报错字母数字运算符、界符等符号其他是否图3.2扫描子程序主要部分流程图1.4实验结果输入beginy:=8

8、:ifx>=8thenx:=2*(1+1/3);end#经词法分析输出如下序列:(begin1)(y10)(:17)(=18)(811)(;26)(if2)...如图所示:第11页编译原理实验报告1.5实验小结词法分析这个实验还是比较简单的,书上也给了详细的介绍,通过这次实验加深了课本的知识,也让我了解了编译程序到底是如何书写的。实验二:语法分析2.1实验目的1)设计并编制一个语法分析程序,加深对语法分析程序中递归下降分析方法的理解;2)巩固对代码生成及报错处理等理论的认识;3)培养对完整系统独立分析和设计的能力;4)培养学生独立编程

9、的能力;2.2实验要求利用C语言编制递归下降分析程序,并对简单语言进行语法分析。2.2.1待分析的简单的语法用扩充的BNF表示如下:(1)<程序>::=begin<语句串>end(2)<语句串>::=<语句>{:语句}(3)<语句>::=<赋值语句>(4)<赋值语句>::=ID:=<表达式>(5)<表达死>::=<项>{+<项>

10、-<项>}(6)<项>::=<因子>{*<因子>

11、/<因子>}(7)<因子>::=ID

12、NUM

13、(<表达式>)第11页编译原理实验报告2.2.2语法分析程序的功能输入单词串,以”#”结束,如果是文法正确的句子

14、,则输出成功信息,打印“success”,否则输出”error”例如:输入:begina:=9;b:=0end#输出:success输入:begina=9end#输出:error2.3词法分析程序的算法思想算法的基本任务

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

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

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