民生—编译原理实验指导书.doc_第1页
民生—编译原理实验指导书.doc_第2页
民生—编译原理实验指导书.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编译原理实验指导书实验一 词法分析一、实验目的通过实现PL/0语言(一种示例小语言)的词法分析器,理解词法分析过程,掌握程序各部分之间的接口安排。二、实验要求1、要求每位同学单独完成词法分析器,并接受检查;2、撰写实验报告。(1) 用有限自动机画出“三、实验内容”中的词法规则;(2) 实验报告不要摘抄全部代码,但需要流程图的形式描述程序结构;(3) 必须书写设计和实现的过程中出现的一些问题以及解决方法。三、实验内容1、PL/0语言的单词结构关键字(10个):begin, end ,if ,then, while, do, const, var,call,procedure标识符:字母序列,最大长度10常数:整型常数算符和界符(17个):+, -, *,/,odd,=,=,:=,(,) ,, ,.,;2、单词的种别划分标识符 作为一种常数 作为一种算符和界符每个单词作为一个单独种别3、PL/0的语言的词法分析器将要完成以下工作:(1) 跳过分隔符(如空格,回车,制表符);(2) 识别诸如begin,end,if,while等保留字;(3) 识别非保留字的一般标识符。(4) 识别数字序列。(5) 识别:=,=之类的特殊符号。4、词法分析器的实现方式:把词法分析器设计成一个独立子程序,以便于语法分析器调用。词法分析器运行一次产生一个单词符号。5、词法分析器的输出(单词种别编码,单词本身的值)说明:词法分析器的输出应该是(种别编码,属性值),但当种别不能唯一代表单词本身时,就需要组织符号表了。为了降低实验难度,实验输出就改成了(种别编码,单词本身的值)。6、词法分析器和语法分析器的接口设计要把词法分析器设计成独立的子程序,以便于被语法分析器调用,每调用语法分析器一次,就识别出一个单词符号。 实验二 利用算符优先分析方法设计一个计算器一、实验目的在实验一的基础上,利用算符优先分析方法设计一个计算器,以加深对算符优先分析过程和语义分析过程的理解。二、实验要求1、要求每位同学独立完成;2、撰写实验报告。(1) 写出计算器基于的属性文法;(2) 必须书写设计和实现的过程中出现的一些问题以及解决方法。三、实验内容1、实验具体说明目前一般的计算器进行计算时不能输入括号,而且需要事先得到表达式的各项才能使用它,例如:若直接输入:3+4*5,一般的计算器会在输入乘号时,先得到7,输入完成后的结果是35。如果希望能够更方便的使用计算器,我们可以进行一些改进。实验中要求计算器:(1) 可以输入+ - * / ( )(2) 输入时不立即计算,等到下一个算符出现时才确定是否进行计算,例如:输入3+5*4,在输入*后,发现+的优先级低于*,因此+不计算,表达式输入结束后先计算*,后计算+。(3) 能够发现输入表达式中的语法错误。2、实验步骤实验分成两个阶段进行:(1) 第一阶段,运用算符优先分析

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论