欢迎来到天天文库
浏览记录
ID:9075799
大小:57.50 KB
页数:5页
时间:2018-04-16
《编译原理阶段练习三》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、编译原理练习三一、填空题1.编译过程中,每当扫描器识别出一个名字后,编译程序就查阅符号表,看该名字是否在其中。如果该名字是一个新名字就将它添进符号表。2.在语义分析阶段,符号表所登记的信息将用于语义检查和产生中间代码;在目标代码生成阶段,符号表是地址分配的依据。3.过程信息表中必须包括过程名、参数信息和过程入口地址。4.编译程序使用说明标识符的过程、函数或子程序的静态层次区别标识符的作用域。5.编译程序在其工作过程中使用最多的数据结构是表。它记录着源程序中的各种信息,以便查询和修改。在这些表中,尤以符号表最为重要,它的生存期最长,使用也最频繁。6.过程与过程
2、引用中信息交换的方法是全局变量和参数传递。7.PASCAL语言中局部变量的作用域为说明该变量的过程或函数,除去该过程或函数内部嵌套的含有同名标识符的过程或函数。8.将过程的每次执行和过程的活动记录相对应就解决了过程递归调用所引起的问题。9.形式参数和实在参数之间的对应关系通常按它们在源程序中的位置来确定。10.对于某个压缩了的上下文无关文法,当把每个文法符号联系于一组属性,且让该文法的规则附加以语义规则时,称该文法为属性文法。11.文法符号的属性有两种,一种称为继承属性,另一种称为综合属性。12.一个文法符号的继承属性是通过语法树中它的兄弟结点和父结点的相应
3、文法符号的属性来计算的,而综合属性是通过语法树中它的子结点的属性之值来计算的。13.语法制导的编译程序能同时进行语法分析和语义分析。14.在PASCAL中,由于允许用户动态申请与释放内存空间,所以必须采用堆式存储分配技术。15.静态区的分配对象是全程变量和不改变其值的对象。静态区分配的特点是其访问地址可采用绝对地址。一、选择题(单项和多项)1.在编译过程中,符号表的主要作用是cd。a.帮助错误处理b.辅助语法错误的检查c.辅助语义的(即上下文有关的)正确性检查d.辅助代码生成e.辅助对目标代码的优化2.PASCAL中过程说明的局部量地址分配在b。a.调用者的
4、数据区中b.被调用者的数据区中c.主程序的数据区中d.公共数据区中3.与PASCAL语言存储分配方式相似的语言是a。a.C语言b.BASIC语言c.FORTRAN-774.运行阶段的存储组织与管理的目的是bc。a.提高编译程序的运行速度b.提高目标程序的运行速度c.为运行阶段的存储分配作准备5.动态存储分配时,可以采用的分配方法有:ab。a.以过程为单位的栈式动态存储分配b.堆存储分配c.最佳分配方法6.过程调用时,参数的传递方法通常有abcd。a.传值b.传地址c.传结果d.传名7.过程调用的参数传递中,将出现的任一形参都代之以相应的实参的为b,过程体对形
5、参的任何引用或赋值都被处理成对形式单元的间接访问的为c,像使用局部变量一样使用形式单元的为a。a.传值b.传名c.传地址d.传结果8.FORTRAN编译中存储分配a。a.静态存储分配b.动态存储分配9.在编译方法中,动态存储分配的含义是什么?aa.在运行阶段对源程序中的量进行分配b.在编译阶段对源程序中的量进行分配c.在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要改变a.以上都不正确9.名字就是标识符,标识符就是名字。ba.正确b.不正确10.在编译时有传名功能的语言是a。a.ALGOL60b.BASICc.FORTRANd.COBOL一
6、、在编译过程中为什么要建立符号表?符号表应包括那些内容?解答:因为在编译的过程中,始终涉及到对一些语法符号的处理,故要用到这些语法符号的相关属性。为了在需要的时候能找到这些语法成分及其相关属性,必须使用一些表格保存这些语法成分及其属性,这些表格就是符号表。符号表应包括语法符号的名字和相关的属性,不同语法符号在符号表中存放的信息不同。四、试写出下面类型的内部表示:(假设简单类型的值一律占一个单元)array[1..5]ofarray[1..10]ofrecordi:integer;b:booleanend100arrayTy1subTyintPtr1510ar
7、rayTy1subTyintPtr1102recorTy·bboolPtr1·iintPtr0五、当前层数为L,可用偏移量Offset值为101,且有下面程序,写出本层符号表的内容。constm=333;n=444;typeat=array[1..10]ofreal;rt=recordi,j:integerend;VARa,b:at;x,y:real;intPtrconsKind333mnintPtrconsKind444ataPtrtypeKindfalsertrecordPtrtypeKindfalseiintPtrfieldKind101recordP
8、trjintPtrfieldKind102recor
此文档下载收益归作者所有