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

下载本文档

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

文档简介

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

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

3、 Dos), C+。(3) 数据结构struct 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

4、;/产生式右部的长度;ivan css20;/ 语法 20 个产生式 struct 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;/ 操作符s

5、tring op1;/ 操作数四元式链, true 链,string op2;/ 操作数 string result;/ 结果 L *next;/ 语义四元式向后指针 L *Ltrue;/ 回填 true 链向前指针 L *Lfalse;/ 回填 false 链向前指针 ;L *L_four_head,*L_four_tail,*L_true_head,*L_false_head;/ false 链struct symb/ 语义输入时符号表 string word;/ 变量名称int addr;/变量地址symb *n ext;;语义符号链表symb *symb_head,*symb_tail;(4)实现过程结束五、实验结果CL7 丁 L7 匸 7 NT -nmsh ST e teNyrBrJMifilBSKifilBSKnMSM 讥#MN 娃 NNta理 NKta-INNBGMN 噪六、实验总结通过本次实验,我了解了当我编写的代码在经过编译过程中所进行的处理 分为词法分析,语法分析,语义分析和中间代码生成,生成的中间代码经过代

温馨提示

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

评论

0/150

提交评论