编译原理课件chap8.ppt

编译原理课件chap8.ppt

ID:51496732

大小:152.00 KB

页数:10页

时间:2020-03-25

编译原理课件chap8.ppt_第1页
编译原理课件chap8.ppt_第2页
编译原理课件chap8.ppt_第3页
编译原理课件chap8.ppt_第4页
编译原理课件chap8.ppt_第5页
资源描述:

《编译原理课件chap8.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、第八章符号表编译过程中编译程序需要不断汇集和反复查证出现在源程序中各种名字的属性和特征等有关信息。这些信息通常记录在一张或几张符号表中。符号表的每一项包括两部分:一部分是名字(标识符);另一部分是此名字的有关信息。每个名字的有关信息是指种属(如简单变量、数组、过程等)、类型(如整、实、布尔等)。这些信息将用于语义检查、产生中间代码以及最终生成目标代码等不同阶段。几乎在编译程序工作的全过程中,都需要对符号表进行频繁访问,可以认为查表或填表等操作,在编译程序的编译过程中是很大的一笔开销。因此,合理地组织符号表,并相应地选择好查表和填表的

2、方法,是提高编译序工作效率的重要一环。第八章符号表本章我们介绍符号表的一般组织和使用方法,本章在全书中是相对比较容易的一章。仔细看书,我相信理解起来并不难。值得一提的是杂凑技术,名字的作用范围,应多看两遍。第八章符号表例题与习题解答[例8。1]在编译过程中,嵌套调用的过程间寻址问题如何解决?下面是一个示意性元程序,请给出编译期间栈式符号表的变化情况。PROGRAMmaina=10;b,c:integer;d,e:real;PROCEDUREp(x:real);f:real;PROCEDUREq(y:real);g=5;n:boole

3、an;第八章符号表BEGIN…IFe<0THENp(f);…..END;{q}BEGIN….Q(e);…END;{p}PROCEDUREt;j:real;BEGIN…p(e);…END;{t}BEGIN…WHILEc>0DO…;p(d);…END.{main}第八章符号表解:在编译过程中,当进入某过程体时,每引用一次标识符便需要查找栈符号表,查找范围由DISPLAY栈顶值和TOP的值控制,首先在栈符号表内的(TOP-1)至DISPLAY栈顶值这样一个范围内查找,若找到了,便可以从中取出该标识符的有关属性;若未查到,则需要继续在它的嵌

4、套外层中查找,一直到最外层;如果引用的某标识符一直查到主程序还查不到它的说明或某些属性不相符,则说明语义不正确,处理程序将向用户报告出错信息。下面给出了元程序在编译的不同时刻栈符号表的变化:第八章符号表第八章符号表第八章符号表第八章符号表第八章符号表第九章运行时存储空间组织(1)编译程序在完成词法、语法和语义分析后,在生成目标代码之前,需要把程序的静态正文和实现这个程序的运行时的活动联系起来弄清楚将来在代码运行时刻,源代码中的各种变量、常量等用户定义的量是如何存放的,如何去访问它们。第八章符号表

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。