篇一 :语义分析实验报告(实验三)

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

软工082班

兰洁

200831104044

一、 实验内容

二、 实验目的

三、 实验要求

四、 程序流程图

五、 程序代码与主要过程说明

六、 测试用例

七、 输出结果

八、 实验心得

一、   实验内容

    定义模拟的简单语言的语义成分,将语义分析程序编制成一个子程序,在实验2分析出个语法单位后,分析其含义,并将可执行语句或表达式翻译成四元式输出,并将错误信息输出。

二、   实验目的

   通过上机实验,加深对语义制导翻译原理的理解,掌握将语法分析所识别的语法成分变换成为中间代码的语义翻译方法。

三、   实验要求 

   采用递归下降语法制导翻译方法,对算术表达式、赋值语句进行语义分析并生成四元式序列。

例如:对于语句串

Function

a=2+3*4;

x=(a+b)/c;

endfunc

#

输出的三地址指令如下

l  t1=3*4

l  t2=2+t1

l  a=t2

l  t3=a+b

l  t4=t3/c

l  x=t4

四、   程序流程图

由于语义分析的的方法就是在语法分析过程中,根据每个产生式所对应的语义子程序进行翻译,为每个产生式配上一个翻译子程序,并在语法分析的同时执行这些子程序。所有对应的流程图与语法分析流程图大同小异,关于各类函数的流程图我已经在词法分析报告与语法分析报告中详细画出,所以这里只说明程序主要流程。

五、   程序代码与主要过程说明

/*语义分析源代码*/

# include<stdio.h>

…… …… 余下全文

篇二 :编译原理语义分析实验报告——免费!

语义分析实验报告

一、      实验目的:

通过上机实习,加深对语法制导翻译原理的理解,掌握将语法分析所识别的语法成分变换为中间代码的语义翻译方法。

二、      实验要求:

采用递归下降语法制导翻译法,对算术表达式、赋值语句进行语义分析并生成四元式序列。

三、      算法思想:

1、设置语义过程。

(1)emit(char *result,char *ag1,char *op,char *ag2)

该函数的功能是生成一个三地址语句送到四元式表中。

四元式表的结构如下:

struct

{     char result[8];

char ag1[8];

char op[8];

char ag2[8];

}quad[20];

 (2) char *newtemp()

该函数回送一个新的临时变量名,临时变量名产生的顺序为T1,T2,…

char *newtemp(void)

{     char *p;

             char  m[8];

             p=(char *)malloc(8);

              k++;

…… …… 余下全文

篇三 :语义分析实验报告.doc

                        实验三语法分析

                 20080810309     3     李君林

一.实验目的:

通过使用、剖析和扩充TINY语言的语义分析程序,掌握编译器的语义分析程序的构造方法。

二.实验内容

(一)运行TINY的语义分析程序

(二)扩充TINY的语法分析程序

提示:

       考虑作用域(如:函数)和数组时可能需要修改符号表。

三.实验步骤

1.先读懂TINY语义程序(相关联的文件:MAIN.C  ANALYZE.C   ANALYZE.H)

(1)buildSymtab(syntaxTree);  //根据语法树建立符号表

通过递归调用  traverse(syntaxTree,insertNode,nullProc);

进行static void insertNode( TreeNode * t),这样将遇到与ID有关的Node信息通过void st_insert( char * name, int lineno, int loc,int len )加入到hashTable[h]数据结构中。

(2)接着调用typeCheck(syntaxTree);进行类型检测

…… …… 余下全文

篇四 :语义分析实验报告

云南大学编译原理实验报告

            zjn

实验题目:    语义分析

    院:    信息学院

    业:    计算机科学与技术

    号:    20091060064

    名:    刘继远

 



目录

一、实验目的. 1

二、实验内容. 1

三、源程序分析. 2

1、程序采用的BNF 2

2、根据语义要求得到对应的翻译模式. 3

3、实现原理. 4

4、文法的属性分析. 5

5、过程设计. 5

6、子程序说明. 6

四、设计的基本思想(包括修改之后的属性文法、属性类型分析、翻译模式). 7

1、增加除法运算. 7

2、禁止同名重复声明. 8

五、结果及分析. 8

一、实验目的

进一步理解递归下降分析原理和实现方法,理解语义分析的基本机制,掌握语义子程序的构造方法。

二、实验内容

将带变量声明的表达式翻译为四元式序列,其中包括以下要求:

l非终结符号D实现定义两种类型int, real变量的声明;

l非终结符号S实现变量之间的*+: =(赋值运算)

l两个关键字 int real

l变量之间的*+: =(赋值) 运算只能使用声明过的变量,所以要检查使用的变量是否声明过。

l对每个*+: =(赋值) 运算生成一条四元式如(*ABT1),其中T1是临时变量

l*优先级别高于+*满足左结合规则

…… …… 余下全文

篇五 :北邮大三上-编译原理-语义分析实验报告

 

班级:09211311

学号:

姓名:schnee


目  录

1.      实验题目和要求... 3

2.      实验分析和思考... 3

3.      翻译方案... 4

4.      LR实现 自底向上分析(摘自语法分析实验)... 5

4.1.    构造识别所有活前缀的DFA.. 5

4.2.    构造LR分析表... 6

5.      S属性定义的自底向上实现... 7

5.1.   扩充分析栈... 7

5.2.   改造分析程序... 7

5.3.   编程实现... 8

6.      运行结果截图:... 14

1.      实验题目和要求

题目:语义分析程序的设计与实现。

实验内容:编写语义分析程序,实现对算术表达式的类型检查和求值。要求所分析算术表达式由如下的文法产生。

实验要求:用自底向上的语法制导翻译技术实现对表达式的分析和翻译。

(1)    写出满足要求的语法制导定义或翻译方案。

(2)    编写分析程序,实现对表达式的类型进行检查和求值,并输出:

①       分析过程中所有产生式。

…… …… 余下全文

篇六 :语义分析实验报告三

《编译原理实践》

 

实验三:中间代码生成

          

          

班级:计算机3班

院系:数学与计算机学院

组员:

     

                  


一、 实验目的

   熟悉算术表达式的语法分析与中间代码生成原理。

二、 实验内容

(1)设计语法制导翻译生成表达式的四元式的算法。

(2)编写代码并上机调试运行通过。

     输入——算术表达式; 输出——语法分析结果, 三地址指令形式的四元式代码,若有错误将错误信息输出。

三、 程序设计与实现

步骤:

(1)输入待分析的字符串。

 语法如下:

 a.关键字:begin,if,then,while,do,end.

 b.运算符和界符::= + - * / < <= > >= <> = ; ( ) #

 c.其他单词是标识符(ID)和整形常数(NUM):ID=letter(letter|digit)*,NUM=digitdigit*

d.空格由空白、制表符和换行符组成。空格一般用来分隔ID、NUM、运算符、界符和关键字,词法分析阶段通常被忽略。

(2)扫描字符串,采用递归向下进行分析。

  主要函数:

  a.scaner()//词法分析函数,char token[8]用来存放构成单词符号的字符串;

…… …… 余下全文

篇七 :编译原理_ 语义分析_实验报告

编译原理实验三

语义分析

实验报告

u 学院:数学与计算机科学技术学院

u 专业:计算机科学与技术

u 班级:级计算机班

u 小组组员:

姓名:          学号:          

姓名:           学号:           

姓名:         学号:          

姓名:         学号:           

实验题目

一、实验目的

要求学生用与实验2相同的语言,编制语义分析程序。

二、实验准备

微机CPU主频1.3G以上,128M内存,安装好C语言,PASCAL语言,或C++。

三、实验时间

    13学时

四、实验内容

要求学生用与实验2相同的语言,编制语义分析程序。

定义该语言的语义成分,将语义分析程序编制成子程序,在实验2分析出各语法单位后,分析其含义,并将可执行语句或表达式翻译为四元式输出,并将错误信息输出。

…… …… 余下全文

篇八 :编译原理语义分析实验报告 免费

编译原理综合训练

语义分析实验报告

指导老师:

班级:

学生:zeadom

学号:

学生:

学号:

2011/6/29

编译原理语义分析实验报告免费

目录

语言文法的形式化描述 ................................................................................................................... 3

语义规则........................................................................................................................................... 3

运行环境介绍 ................................................................................................................................... 5

关键算法的流程图及文字解释 ....................................................................................................... 5

1、本编译器的总框架 ............................................................................................................. 5

2、在语义分析中的主要函数介绍 ......................................................................................... 5

…… …… 余下全文