资源简介
C.3语义分析
实验目的
通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法.
实验要求
采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。
实验的输入和输出
输入是语法分析提供的正确的单词串,输出为三地址指令形式的四元式序列。
例如:对于语句串
begin a:=2+3*4;x:=(a+b)/c end#
输出的三地址指令如下:
(1) t1=3*4
(2) t2=2+t1
(3) a=t2
(4) t3=a+b
(5) t4=t3/c
(6) x=t4
算法思想
1设置语义过程
(1) emit(cha
代码片段和文件信息
#include
#include
char prog[80]token[8];
char ch;
int synpmnsum;
char *rwtab[6]={“begin““if““then““while““do““end“};
void scaner();
void main(){
p=0;
printf(“\n please input string;\n“);
do {
scanf(“%c“&ch);
prog[p++] = ch;
}while (ch!=‘#‘);
p=0;
do{
scaner();
switch(syn) {
case 11: printf (“(syn%d)\n“sum); break;
case -1:printf(“error!\n“);break;
default:printf(“(%d%s)\n“syntoken);
}
}while (syn!=0);
}
void scaner(){
for(n=0;n<8;n++) token[n]=NULL;
ch = prog[p++];
while(ch==‘ ‘)
ch = prog[p++];
if(ch>=‘a‘&&ch<=‘z‘){
m = 0;
while((ch>=‘a‘&&ch<=‘z‘)||(ch>=‘0‘&&ch<=‘9‘)){
token[m++] = ch;
ch = prog[p++];
}
token[m++]=‘\0‘;
--p;
syn=10;
for (n=0;n<6;n++)
if(strcmp(token
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1844 2008-10-27 21:44 编译原理\词法分析实验\1_2\1_2.cpp
文件 3365 2008-10-28 14:20 编译原理\词法分析实验\1_2\1_2.dsp
文件 514 2008-10-28 15:14 编译原理\词法分析实验\1_2\1_2.dsw
文件 41984 2008-10-28 15:14 编译原理\词法分析实验\1_2\1_2.ncb
文件 48640 2008-10-28 15:14 编译原理\词法分析实验\1_2\1_2.opt
文件 1095 2008-10-27 23:31 编译原理\词法分析实验\1_2\1_2.plg
文件 167982 2008-10-27 23:31 编译原理\词法分析实验\1_2\Debug\1_2.exe
文件 186736 2008-10-27 23:31 编译原理\词法分析实验\1_2\Debug\1_2.ilk
文件 9620 2008-10-27 23:31 编译原理\词法分析实验\1_2\Debug\1_2.obj
文件 186924 2008-10-27 23:27 编译原理\词法分析实验\1_2\Debug\1_2.pch
文件 427008 2008-10-27 23:31 编译原理\词法分析实验\1_2\Debug\1_2.pdb
文件 33792 2008-10-28 14:20 编译原理\词法分析实验\1_2\Debug\vc60.idb
文件 45056 2008-10-27 23:31 编译原理\词法分析实验\1_2\Debug\vc60.pdb
..A..H. 162 2008-10-27 20:32 编译原理\词法分析实验\~$实验设计模板.doc
文件 36864 2007-07-25 19:42 编译原理\词法分析实验\词法分析.doc
文件 60928 2008-10-28 10:58 编译原理\词法分析实验\词法分析实验报告.doc
文件 4673 2008-12-14 22:33 编译原理\语义分析\3_1\1.cpp
文件 3346 2008-12-14 22:42 编译原理\语义分析\3_1\1.dsp
文件 527 2008-12-14 22:42 编译原理\语义分析\3_1\1.dsw
文件 33792 2008-12-14 22:42 编译原理\语义分析\3_1\1.ncb
文件 48640 2008-12-14 22:42 编译原理\语义分析\3_1\1.opt
文件 1622 2008-12-14 22:41 编译原理\语义分析\3_1\1.plg
文件 98370 2008-12-14 22:41 编译原理\语义分析\3_1\Debug\1.exe
文件 51616 2008-12-14 22:41 编译原理\语义分析\3_1\Debug\1.ilk
文件 19088 2008-12-14 22:41 编译原理\语义分析\3_1\Debug\1.obj
文件 222996 2008-12-14 22:41 编译原理\语义分析\3_1\Debug\1.pch
文件 558080 2008-12-14 22:41 编译原理\语义分析\3_1\Debug\1.pdb
文件 33792 2008-12-14 22:41 编译原理\语义分析\3_1\Debug\vc60.idb
文件 45056 2008-12-14 22:41 编译原理\语义分析\3_1\Debug\vc60.pdb
..A.SH. 7168 2008-12-14 21:03 编译原理\语义分析\Thumbs.db
............此处省略40个文件信息
- 上一篇:Love表白小程序,专哄女朋友
- 下一篇:vc实现led指示灯
相关资源
- 编译原理词法分析实验报告内含截图
- 编译原理——词法分析代码
- 实验一 词法分析程序实现
- 编译原理 词法、语法、语义分析生成
- 编译原理语法分析和词法分析
- 编译原理语法分析器实验报告完整版
- PL0(包括对其的扩充)
- 词法分析器和语法分析器
- 编写一个词法分析器,它针对输入文
- 计算器语法分析器
- Lex词法分析实验
- 递归下降语法分析器
- 算符优先分析和词法分析器的设计与
- 编译原理实验四、用FlexBison;进行语法
- TINY+词法分析完全
- 编译原理--词法分析实验(含代码)
- 编译原理实验二:Tiny扩充语言语法分
- 语法分析 算符优先分析程序
- 一个简单编译器前端包括词法分析,
- 完整cmm解释器构造实践 二 词法分析
- pascal语言的词法分析器
- 编译原理实习设计 语法分析程序
- 编译原理上机作业-词法分析程序实现
- LR分析法的实现
- 编译程序构造
- 编译原理及实践手工构造词法分析器
- SeuLexSeuYacc
- pl0词法语法分析器
- 词法分析程序构造原理与实现技术
- 北京邮电大学编译原理语法分析+实验
评论
共有 条评论