编译原理语义分析实验报告——免费!.pdf
《编译原理语义分析实验报告——免费!.pdf》由会员分享,可在线阅读,更多相关《编译原理语义分析实验报告——免费!.pdf(11页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、语义分析实验报告一、实验目的:通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。二、实验要求:采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。三、算法思想:1、设置语义过程。(1)emit(char*result,char*ag1,char*op,char*ag2)该函数的功能是生成一个三地址语句送到四元式表中。四元式表的结构如下:struct char result8;char ag18;char op8;char ag28;quad20;(2)char*newtemp()该函数回送一个新的临时变量名,临时
2、变量名产生的顺序为T1,T2,char*newtemp(void)char*p;char m8;p=(char*)malloc(8);k+;itoa(k,m,10);strcpy(p+1,m);p0=t;return(p);2、函数lrparser 在原来语法分析的基础上插入相应的语义动作:将输入串翻译成四元式序列。在实验中我们只对表达式、赋值语句进行翻译。四、源程序代码:#include#include#include#include struct char result12;char ag112;char op12;char ag212;quad;char prog80,token12;c
3、har ch;int syn,p,m=0,n,sum=0,kk;/p 是缓冲区prog 的指针,m 是 token 的指针char*rwtab6=begin,if,then,while,do,end;void scaner();char*factor(void);char*term(void);char*expression(void);int yucu();void emit(char*result,char*ag1,char*op,char*ag2);char*newtemp();int statement();int k=0;void emit(char*result,char*ag1,
4、char*op,char*ag2)strcpy(quad.result,result);strcpy(quad.ag1,ag1);strcpy(quad.op,op);strcpy(quad.ag2,ag2);coutquad.result=quad.ag1quad.opquad.ag2endl;char*newtemp()char*p;char m12;p=(char*)malloc(12);k+;itoa(k,m,10);strcpy(p+1,m);p0=t;return(p);void scaner()for(n=0;n=a&ch=A&ch=0&ch=a&ch=A&ch=Z)tokenm
5、+=ch;ch=progp+;tokenm+=0;p-;syn=10;for(n=0;n=0&ch=0&ch32767)syn=-1;else switch(ch)case)syn=21;tokenm+=ch;else if(ch=)syn=22;tokenm+=ch;else syn=23;p-;break;case:m=0;tokenm+=ch;ch=progp+;if(ch=)syn=24;tokenm+=ch;else syn=20;p-;break;case:m=0;tokenm+=ch;ch=progp+;if(ch=)syn=18;tokenm+=ch;else syn=17;p
6、-;break;case*:syn=13;token0=ch;break;case/:syn=14;token0=ch;break;case+:syn=15;token0=ch;break;case-:syn=16;token0=ch;break;case=:syn=25;token0=ch;break;case;:syn=26;token0=ch;break;case(:syn=27;token0=ch;break;case):syn=28;token0=ch;break;case#:syn=0;token0=ch;break;default:syn=-1;break;int lrparse
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译 原理 语义 分析 实验 报告 免费
限制150内