77范文网 - 专业文章范例文档资料分享平台

编译原理实验指导书(3)

来源:网络收集 时间:2021-09-24 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

4. 如果扩充后的编译程序可以完成对test1.pl0, test2.pl0的编译,并能运行得到运

行结果(如图1(a)、图1(b)所示),经老师检查后将有加分; 5. 如果能够使扩充后的编译程序可以支持用表达式作为数组的下表,即允许使用形如array[i],调用数组元素(调试用源码为test3.pl0,运行结果如图1(c)所示),将额外加分; 6. 将实现对三个扩充功能进行编译的思路,以及你对语法分析的理解写在实验报

编译原理实验指导

告上。

(a) (b) (c)

图1 (a、b、c)分别为test1.pl0、test2.pl0、test3.pl0的一个可能运行结果

实验环境:

1. 操作系统为Windows 2000或Dos6.2以上。 2. 编程语言为Pascal或C语言。

提示:

1. 扩充的条件语句和重复语句都是语句,而所给的PL/0编译程序中有语句处理

函数,找到相应函数并进行扩充;

2. 所给的三个扩充功能中引入了几个新的关键字,从而必需对相应的全局变量其数据结构进行修改; 3. 注意跳转语句的处理,往往在一跳转语句处不知道所要跳转的指令地址,解决

办法是将该跳转语句地址保存,在知道所要跳转的指令地址后再回填; 4. 要能完成对数组的处理,即使只是用整型常数作为数组下标引用数组元素,所

要做的工作比较多。涉及的有,如何进名字表,如何定位到各个元素,各种语

句中哪些涉及到会直接使用数组元素等,分析清楚这些因素之后,找到各因素对应函数进行修改;

5. 如果要使数组的下标支持表达式,需扩充新的目标指令。

编译原理实验指导

附:

test1.pl0: const a=10; procedure p; var d;

procedure q; var x; begin repeat begin read(x); if odd x then

d:=2*x else d:=x; write(d)

end

until x=0

end

begin

call q

end begin

call p end. test2.pl0: const a=10; var e[10]; procedure p; var d; procedure q; var x; begin read(e[1],e[2],e[3],e[4],e[5]); d:=e[1]+e[3]; write(d)

end

编译原理实验指导

begin

call q

end

begin call p end. test3.pl0: const a=10; var e[10]; procedure p; var d; procedure q; var x,i;

begin i:=0; repeat begin read(x); if odd x then

e[i]:=2*x else e[i]:=x; write(e[i]); i:=i+1

end

until i=10 end

begin

call q

end

begin call p end.

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说公务员考试编译原理实验指导书(3)在线全文阅读。

编译原理实验指导书(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/gongwuyuan/1246893.html(转载请注明文章来源)

相关推荐:

Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: