好文档 - 专业文书写作范文服务资料分享网站

实验五-编译-用语法制导方式生成中间代码生成器

天下 分享 时间: 加入收藏 我要投稿 点赞

实验5 用语法制导方式生成中间代码生成器

一、实验目的

掌握语法制导定义和翻译的原理和技术,在语法分析器的基础上,加上语义分析,构造一个中间代码生成器。 二、实验内容

在实验四生成的语法分析器基础上加入语义动作,将源程序翻译为对应的中间代码序列。

三、实验要求

1. 个人完成,提交实验报告。实验报告必须包括设计的思路,以及测试报告(输入测试例子,输出结果)。

2. 实验报告中给出采用测试源代码片断,及其对应的三地址码形式(内部表示形式可以自行考虑)。

例如,程序片断

-可编辑修改-

对应的中间代码为:

四、实验过程

本次实验运用flex和bison工具进行中间代码的生成。并自动生成中间代码。 1. 首先创建一个example文件夹,该文件夹中包含有flex.exe

2. 用文本编译器编辑相应的flex文件mylex.l,此次mylex.l可以在上次实验的l文件上做一些修改,再利用flex将l文件生成相应的lex.yy.c程序,mylex.l的代码如下所示: mylex.l

-可编辑修改-

%{

#include \%} delim ws

[ \\t\\n\\r]

{delim}+

[A-Za-z] [0-9]

letter digit id

{letter}({letter}|{digit})*

{digit}+

integer

exponent E[+-]?{integer} number real

{integer}{exponent}?

integer(\\.integer)?{exponent}?

%option noyywrap %%

\{ filloperator(&yylval, yytext); return( REL); } if

{ return( IF ); }

{ return( ELSE ); }

else

while { return( WHILE ); } do { return( DO ); } for { return( FOR ); } switch { return( SWITCH ); }

-可编辑修改-

实验五-编译-用语法制导方式生成中间代码生成器

。实验5用语法制导方式生成中间代码生成器一、实验目的掌握语法制导定义和翻译的原理和技术,在语法分析器的基础上,加上语义分析,构造一个中间代码生成器。二、实验内容在实验四生成的语法分析器基础上加入语义动作,将源程序翻译为对应的中间代码序列。三、实验要求1.个人完成,提交实验报
推荐度:
点击下载文档文档为doc格式
7dlyv2i0eg565jb3urou8mpoj7ocb000zkp
领取福利

微信扫码领取福利

微信扫码分享