编译实验指导书_第1页
编译实验指导书_第2页
编译实验指导书_第3页
编译实验指导书_第4页
编译实验指导书_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、编译原理实验指导书实验一词法分析一、实验目的通过实现PL/0语言(一种示例小语言)的词法分析器,理解词法分析过程,掌握程序各部分之间的接口安排。二、实验要求1、要求每位同学单独完成词法分析器,并接受检查;2、撰写实验报告。用有限自动机画出“三、实验内容”中的词法规则;实验报告不要摘抄全部代码,但需要流程图的形式描述程序结构;必须书写设计和实现的过程中出现的一些问题以及解决方法。三、实验内容1、PL/0语言的单词结构关键字(10个):begin,end,if,then,while,do,const,var,call,procedure标识符:字母序列,最大长度10常数:整型常数算符和界符(17个

2、):+,-,*,/,odd,=,=,:=,(,),.,;2、单词的种别SYM_IDENTIFIER,标识符SYM_NUMBER,常数SYM_PLUS,+SYM_MINUS,-SYM_TIMES,*SYM_SLASH,/SYM_ODD,oddSYM_EQU,=SYM_NEQ,SYM_LES,SYM_LEQ,SYM_GEQ,=SYM_LPAREN,(SYM_RPAREN,)SYM_COMMA,SYM_SEMICOLON,;SYM_PERIOD,.SYM_BECOMES,:=SYM_BEGIN,beginSYM_END,endSYM_IF,ifSYM_THEN,thenSYM_WHILE,while

3、SYM_DO,doSYM_CONST,constSYM_VAR,varSYM_CALL,callSYM_PROCEDUREprocedure3、PL/0的语言的词法分析器将要完成以下工作:跳过分隔符(如空格,回车,制表符);识别诸如begin,end,if,while等保留字;识别非保留字的一般标识符,此标识符值(字符序列)赋给全局量id,而全局量sym赋值为SYM_IDENTIFIER。识别数字序列,当前值赋给全局量NUM,sym则置为SYM_NUMBER;识别:=,=,=之类的特殊符号,全局量sym则分别被赋值为SYM_BECOMES,SYM_LEQ,SYM_GEQ等。4、词法分析器的实现

4、方式:把词法分析器设计成一个独立子程序,以便于语法分析器调用。词法分析器运行一次产生一个单词符号。实验二语法分析一、实验目的在实验一的基础上,采用递归下降的方法实现PL/O语言(一种示例小语言)实验要求的语法分析器1、要求每位同学单独完成语法法分析器,并接受检查;2、撰写实验报告。(1)用上下文无关文法写出“三、实验内容”中的语法规则;(2)实验报告不要摘抄全部代码,但需要流程图的形式描述程序结构;(必须书写设计和实现的过程中出现的一些问题以及解决方法。三、实验内容表达式1、Test语言的语法结构表达式(1)程序(2)程序体(3)语句序列语句(4)语句条ident件-odd表达式(6)表达式-

5、caidentlLj(8)因*beg因子(8)因*beg因子、=ident2、迎递归下降2、迎递归下降的方法来设计条件/0编译ST一和FOLLOW和FOLLOW集合0非终结符S)FST(S)whOlesti4FOL程序体vaprocedeainurei程序体vaprocedeainurei条e件tcal-ifdo语句表达式表达式while(语句identcallbeginifwhile.;end条件odd+-(identnumberthendo表达式+-(identnumber.;)Rendthendo项identnumber(.;)R+-endthendo因子identnumber(.;)R+-*/endthendo注:表中R代表六个关系运算符实验三语义分析和中间代码产生一、实验目的在实验二的基础上,采用基于属性文法的语法制导翻译方法完成语义分析和中间代码产生。二、实验要求1、要求每位同学单独完成语义分析器中至少一种语法单位的翻译,并接受检查;2、撰写实验报告。用属性文法描述你要实现翻译的语法单位的属性文法;必须书写设计

温馨提示

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

评论

0/150

提交评论