实验三语义分析及中间代码生成_第1页
实验三语义分析及中间代码生成_第2页
实验三语义分析及中间代码生成_第3页
实验三语义分析及中间代码生成_第4页
全文预览已结束

下载本文档

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

文档简介

1、实验三 语义分析及中间代码生成一 、实验目的通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法范畴变换为某种中间代码的语义翻译方法。二 、实验内容实现简单的高级语言源程序的语义处理过程。三试验要求(一) 程序设计要求(1) 目 标 机:8086及其兼容处理器(2) 中间代码:三地址码或者四元式(3) 设计结果:语法分析树(节点具有属性)、三地址码表、符号表、TOKEN串表(4) 语义分析内容要求:1) 变量说明语句2) 赋值语句3) 控制语句(任选一种)(5) 其它要求:1) 将词法分析(扫描器)作为子程序,供语法语义程序调用;2) 使用语法制导的语义翻译方法;3) 编程语

2、言自定;4) 最好提供源程序输入界面;5) 目标代码生成暂不做;6) 编译后,可查看TOKEN串、语法分析树、符号表、三地址码表;7) 主要数据结构:产生式表、符号表、语法分析树、三地址码表。四 、实验设计(1) 系统功能(包括各个子功能模块的功能说明); 可对一段包含加减乘除括号的赋值语句进行语法分析,其必须以$为终结符,语句间以;隔离,判断其是否符合语法规则,依次输出判断过程中所用到的产生式,并输出最终结论,若有错误可以报错并提示错误所在行数及原因(2) 开发平台(操作系统、设计语言);Windows 7,Microsoft Visual C+ 6.0(Dos),C+。(3) 数据结构 s

3、truct token/词法 token结构体int code;/编码int num;/递增编号token *next;token *token_head,*token_tail;/token队列struct str/词法 string结构体int num;/编号string word;/字符串内容str *next;str *string_head,*string_tail;/string队列struct ivan/语法 产生式结构体char left;/产生式的左部string right;/产生式的右部int len;/产生式右部的长度;ivan css20;/语法 20个产生式stru

4、ct pank/语法 action表结构体char sr;/移进或归约int state;/转到的状态编号;pank action4618;/action表int go_to4611;/语法 go_to表struct ike/语法 分析栈结构体,双链ike *pre;int num;/状态int word;/符号编码ike *next;ike *stack_head,*stack_tail;/分析栈首尾指针struct L/语义四元式的数据结构int k;string op;/操作符string op1;/操作数string op2;/操作数string result;/结果L *next;/

5、语义四元式向后指针L *Ltrue;/回填true链向前指针L *Lfalse;/回填false链向前指针;L *L_four_head,*L_four_tail,*L_true_head,*L_false_head;/四元式链,true链,false链struct symb/语义输入时符号表string word;/变量名称int addr;/变量地址symb *next;symb *symb_head,*symb_tail;/语义符号链表(4) 实现过程五、实验结果六、实验总结 通过本次实验,我了解了当我编写的代码在经过编译过程中所进行的处理,分为词法分析,语法分析,语义分析和中间代码生成,生成的中间代码经过代码生成器变形成

温馨提示

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

评论

0/150

提交评论