




已阅读5页,还剩7页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理实 验 指 导 书雷宇 朴春慧 马新娜 段淑凤 编石家庄铁道学院2005年3月前 言编译原理是计算机科学与技术专业的一门重要的专业必修课程,又是一门对实践性要求较高的课程。上机实验是编译原理学习的重要环节。通过实验,可以使学生深化理解和灵活掌握编译系统的一般构造原理、基本设计方法和主要实现技术,培养学生设计、实现和扩充程序设计语言的基本能力,提高学生从理论到实际的设计开发软件的动手能力。本书包括了编译原理课程主要实验内容。不同层次不同需要的学校可根据本专业教学要求选择,也可自行开发实验内容。本书由雷宇、朴春慧、马新娜、段淑凤等综合编写,并得到众多师生的大力支持,在此一并感谢。由于编者水平所限,时间仓促,错误及欠缺之处恳请批评指正。 编者 石家庄铁道学院计算机系 2005.3目 录实验一 词法分析1实验二 预测分析法4实验三 LR分析法5附录1:实验报告格式6 实验一 词法分析一、实验目的 (实验日期:2010.4.23)通过设计编制调试一个具体的词法分析程序,加深对词法分析原理的理解。并掌握在对程序设计语言源程序进行扫描过程中将其分解为各类单词的词法分析方法。二、实验要求编制一个读单词过程,源程序为一个文件,读取该文件,识别出各个具有独立意义的单词,即基本保留字、标识符、常数、运算符、界符五大类。并依次输出各个单词的内部编码及单词符号自身值。单词的内部编码如下:1、保留字:if、int、for、while、do、return、break、continue;单词种别码为1;2、标识符:除保留字外的以字母开头,后跟字母、数字的字符序列;单词种别码为2;3、常数为无符号整形数;单词种别码为3;4、运算符包括:+、-、*、/、=;单词种别码为4;5、分隔符包括:,、;、(、); 单词种别码为5。三、预习提示1、词法分析器的功能和输出格式词法分析器的功能是输入源程序,输出单词符号。词法分析器的单词符号常常表示成以下的二元式(单词种别码,单词符号的属性值)。本实验中,采用的是一类符号一种种别码的方式。2、各类单词的文法| + | - | * | / | = , | ; | ( | ) | | 3、模块结构参照教材图2.5词法分析过程GETSYM。四、实验过程和指导1、准备(1) 课本有关章节;(2) 编制好程序;(3) 准备多组测试数据。2、程序思路(仅供参考):在词法分析中,自文件头开始扫描源程序字符,一旦发现符合“单词”定义的源程序字符串时,将它翻译成固定长度的单词内部表示,并填入适当的信息表。经过词法分析后,源程序字符串(源程序的外部表示)被翻译成具有等长信息的单词串(源程序的内部表示),并产生两个表格:常数表和标识符表,它们分别包含了源程序中的所有常数和所有标识符。(1) 定义部分:定义常量、变量、数据结构。(2) 初始化:从文件将源程序全部输入到字符缓冲区中。(3) 取单词前:去掉多余空白。(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”)(5,”;”)(2,”a”)(4,”=”)(3,10)(5,”;”)(2,”b”)(4,”=”)(2,”a”)(4,”+”)(3,20)(5,”;”)(5,”)”)实验二 预测分析法一、实验目的(实验日期:2010)根据某一LL(1)文法编制调试预测分析程序,以便对任意输入的符号串进行分析。本次实验的目的主要是加深对预测分析法的理解。二、实验要求本次实验的LL(1)文法为表达式文法:EE+T | TTT*F | FFi | (E)编写识别表达式文法的合法句子的预测分析程序,对输入的任意符号串,给出分析过程及分析结果。分析过程要求输出步骤、分析栈、剩余输入串和所用产生式。如果该符号串不是表达式文法的合法句子,要给出尽量详细的错误提示。三、实验过程1、准备(1) 阅读课本有关章节;(2) 初步编制好程序;(3) 准备多组测试数据。2、上机调试3、思路将表达式预测分析表存到一个数组中,参照教材图5.11预测分析程序的框图编写分析程序。4、为了能设计好程序,注意以下事情:(1) 模块设计:将程序分成合理的多个模块(函数),每个模块做具体的同一事情。(2) 写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。(3) 编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。实验三 LR分析法一、实验目的(实验日期:2010)掌握用LR分析法对表达式文法进行自底向上语法分析的算法,加深对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) 准备多组测试数据。2、上机调试3、思路将改进后的SLR(1)分析表存到一个数组中,参照教材118页的LR分析程序编写分析程序。4、为了能设计好程序,注意以下事情:(1) 模块设计:将程序分成合理的多个模块(函数),每个模块做具体的同一事情。(2) 写出(画出)设计方案:模块关系简图、流程图、全局变量、函数接口等。(3) 编程时注意编程风格:空行的使用、注释的使用、缩进的使用等。附录1:实验报告格式_实验报告一、实验项目名称根据实验教学大纲要求书写。二、实验目的目的要明确,要抓住重点,可以从理论和实践两个方面考虑。在理论上,验证定理、公式、算法,并使实验者获得深刻和系统的理解;在实践上,掌握使用实验设备的技能技巧和程序的调试方法。一般需说明是验证型实验还是设计型实验,是创新型实验还是综合型实验。三、实验环境实验用的软硬件环境。四、实验内容说明本次实验的具
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 资源重组对经济发展的推动作用试题及答案
- 北京市石景山区2025届高三一模考试数学试题 含解析
- 2025届江苏省南京市、盐城市高三下学期3月一模政治试题 含解析
- 公司火灾扑救应急预案(3篇)
- 计算机考试备考工具试题及答案
- 森林火灾应急扑救预案(3篇)
- 2025年国际市场中的战略风险分析试题及答案
- 开源社区参与与贡献试题及答案
- 消防火灾应急预案是什么(3篇)
- 行政法学考试难点试题及答案揭秘
- 2025湖北水发集团园招聘40人笔试参考题库附带答案详解
- 2025年武汉数学四调试题及答案
- 2024年全国高中数学联赛北京赛区预赛一试试题(解析版)
- 建筑地基基础检测规范DBJ-T 15-60-2019
- 紧急填仓换刀及破除孤石技术
- 南瑞科技220kv断路器辅助保护nsr-322an型保护装置调试手册
- 滚筒冷渣机技术协议
- 氨基转移酶检测临床意义和评价注意点
- 中债收益率曲线和中债估值编制方法及使用说明
- 国家开放大学《行政组织学》章节测试参考答案
- 什么是标准工时如何得到标准工时
评论
0/150
提交评论