下载此文档

编译原理编译原理实验报告-语义分析.doc


文档分类:IT计算机 | 页数:约6页 举报非法文档有奖
1/6
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/6 下载此文档
文档列表 文档介绍
编译原理课程实验报告实验3:语义分析姓名赵璐媛院系软件学院学号1143710516任课教师陈鄞指导教师实验地点软件学院三楼机房实验时间实验课表现出勤、表现得分实验报告得分实验总分操作结果得分一、需求分析得分要求:阐述语义分析系统所要完成的功能。(1)能分析以下几类语句,并生成中间代码(三地址指令和四元式形式): 声明语句(包括变量声明、数组声明、记录声明和过程声明) 表达式及赋值语句(包括数组元素的引用和赋值) 分支语句:if_then_else 循环语句:do_while 过程调用语句(2)具备语义错误处理能力,包括变量或函数重复声明、变量或函数引用前未声明、运算符和运算分量之间的类型不匹配(如整型变量与数组变量相加减)等错误,能准确给出错误所在位置,并采用可行的错误恢复策略。(3)系统的输入形式:要求能够通过文件导入测试用例。测试用例要涵盖第(1)条中列出的各种类型的语句,以及第(2)条中列出的各种类型的错误。(4)系统的输出分为两部分:一部分是打印输出符号表。另一部分是打印输出三地址指令和四元式序列(5)除此之外,可以实现一些额外功能,例如自动类型转换,识别其它类型语义错误,如过程返回类型与声明类型不匹配;过程调用时实参与形参数目或类型不匹配;对非数组型变量使用数组访问操作符“[…]”;对普通变量使用过程调用操作符“call”;数组访问操作符“[…]”中出现非整数等。二、文法设计得分要求:给出如下语言成分所对应的语义动作声明语句(包括变量声明、数组声明、记录声明和过程声明)表达式及赋值语句(包括数组元素的引用和赋值)分支语句:if_then_else循环语句:do_while过程调用语句声明语句:P→{offset=0}DD→Tid;{enter(,,offset);offset=offset+;}DD→εT→B{t=;w=;}C{=;=;}T→↑T1{=pointer();=4;}B→int{=int;=4;}B→real{=real;=8;}C→ε{=t;=w;}C→[num]C1{=array(,);=*;}赋值语句:S®id=E;{p=lookup();ifp==nilthenerror;gen(p‘=’);}E®E1+E2{=newtemp();gen(‘=’‘+’);}E®E1*E2{=newtemp();gen(‘=’‘*’);}E®-E1{=newtemp();gen(‘=’‘uminus’);}E®(E1){=;}E®id{=lookup();==nilthenerror;}L®id[E]{=lookup();==nil

编译原理编译原理实验报告-语义分析 来自淘豆网m.daumloan.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数6
  • 收藏数0 收藏
  • 顶次数0
  • 上传人386259182
  • 文件大小341 KB
  • 时间2020-05-03
最近更新