收藏 分享(赏)

《编译原理》实验指导书80469.doc

上传人:dreamzhangning 文档编号:2295002 上传时间:2018-09-09 格式:DOC 页数:8 大小:60KB
下载 相关 举报
《编译原理》实验指导书80469.doc_第1页
第1页 / 共8页
《编译原理》实验指导书80469.doc_第2页
第2页 / 共8页
《编译原理》实验指导书80469.doc_第3页
第3页 / 共8页
《编译原理》实验指导书80469.doc_第4页
第4页 / 共8页
《编译原理》实验指导书80469.doc_第5页
第5页 / 共8页
点击查看更多>>
资源描述

1、目 录实验一 词法分析 .1实验二 预测分析法 .4实验三 LR 分析法 5附录 1:实验报告格式 .61实验一 词法分析一、实验目的 (实验日期:2011.11.17)通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。二、实验要求编制一个读单词过程,源程序为一个文件,读取该文件,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、界符五大类。并依次输出各个单词的内部编码及单词符号自身值。单词的内部编码如下:1、保留字:if、int、for、while、do、return、break、co

2、ntinue;单词种别码为 1;2、标识符:除保留字外的以字母开头,后跟字母、数字的字符序列;单词种别码为 2;3、常数为无符号整形数;单词种别码为 3;4、运算符包括:+、-、*、/、=;单词种别码为 4;5、分隔符包括:,、;、(、); 单词种别码为 5。三、预习提示1、词法分析器的功能和输出格式词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值 )。本实验中,采用的是一类符号一种种别码的方式。2、各类单词的文法| + | - | * | / | = , | ; | ( | ) | | 3、模块结构参照教材图 2.5 词法分

3、析过程 GETSYM。四、实验过程和指导21、准备(1) 课本有关章节;(2) 编制好程序;(3) 准备多组测试数据。2、程序思路(仅供参考):在词法分析中,自文件头开始扫描源程序字符,一旦发现符合“单词”定义的源程序字符串时,将它翻译成固定长度的单词内部表示,并填入适当的信息表。经过词法分析后,源程序字符串(源程序的外部表示)被翻译成具有等长信息的单词串(源程序的内部表示) ,并产生两个表格:常数表和标识符表,它们分别包含了源程序中的所有常数和所有标识符。(1) 定义部分:定义常量、变量、数据结构。(2) 初始化:从文件将源程序全部输入到字符缓冲区中。(3) 取单词前:去掉多余空白。(4)

4、取单词:利用实验一的成果读出单词的每一个字符,组成单词,分析类型。(5) 显示结果。3、为了能设计好程序,注意以下事情:(1) 模块设计:将程序分成合理的多个模块(函数) ,每个模块做具体的同一事情。(2) 写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。(3) 编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。五、例源程序文件内容如下:main()int a, b;a = 10;b = a + 20;要求输出如下:(2, ”main”)(5, ”(”)(5, ”)”)(5, ”“(1, ”int”)(2, ”a”)(5, ”,”)(2, ”b”)3(5, ”;”)(

5、2, ”a”)(4, ”=”)(3,10)(5, ”;”)(2, ”b”)(4, ”=”)(2, ”a”)(4, ”+”)(3,20)(5, ”;”)(5, ”)”)4实验二 预测分析法一、实验目的(实验日期:2011.11.24)根据某一 LL(1)文法编制调试预测分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析法的理解。二、实验要求本次实验的 LL(1)文法为表达式文法:EE+T | TTT*F | FFi | (E)编写识别表达式文法的合法句子的预测分析程序,对输入的任意符号串,给出分析过程及分析结果。分析过程要求输出步骤、分析栈、剩余输入串和所用产生式。如果

6、该符号串不是表达式文法的合法句子,要给出尽量详细的错误提示。三、实验过程1、准备(1) 阅读课本有关章节;(2) 初步编制好程序;(3) 准备多组测试数据。2、上机调试3、思路将表达式预测分析表存到一个数组中,参照教材图 5.11 预测分析程序的框图编写分析程序。4、为了能设计好程序,注意以下事情:(1) 模块设计:将程序分成合理的多个模块(函数) ,每个模块做具体的同一事情。(2) 写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。(3) 编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。5实验三 LR 分析法一、实验目的(实验日期:2011.12.1)掌握用 LR

7、分析法对表达式文法进行自底向上语法分析的算法,加深对 LR 分析法的移进,归约等操作理解。二、实验要求本次实验的 SLR(1)文法为表达式拓广文法:(0) SE(1) EE+T(2) ET(3) TT*F(4) TF(5) F(E)(6) Fi改进后的 SLR(1)分析表如教材 142 页图 7.8。编写识别表达式拓广文法的合法句子的 SLR(1)分析程序,对输入的任意符号串,给出分析过程及分析结果。分析过程要求输出步骤、状态栈、符号栈、输入串和语法动作。如果该符号串不是表达式文法的合法句子,要给出尽量详细的错误提示。三、实验过程1、准备(1) 阅读课本有关章节;(2) 初步编制好程序;(3)

8、 准备多组测试数据。2、上机调试3、思路将改进后的 SLR(1)分析表存到一个数组中,参照教材 118 页的 LR 分析程序编写分析程序。4、为了能设计好程序,注意以下事情:(1) 模块设计:将程序分成合理的多个模块(函数) ,每个模块做具体的同一事情。(2) 写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。(3) 编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。6附录 1:实验报告格式_实验报告一、实验项目名称根据实验教学大纲要求书写。二、实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。在理论上,验证定理、公式、算法,并使实验者获得深刻和系统的理解;在实践上,掌握使用实验设备的技能技巧和程序的调试方法。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。三、实验环境实验用的软硬件环境。四、实验内容说明本次实验的具体内容,要求实验内容饱满,难度适中。五、实验步骤要求说明依据何种原理、定律、算法或操作方法进行实验,写清楚程序实现过程。六、源程序清单、测试数据、结果实验中编写的源程序和测试数据以及程序运行结果。七、实验小结和思考针对实验过程中出现的问题以及实验结果进行详细的分析,并写出本次实验的体会。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报