




全文预览已结束
VIP免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
编译原理练习三一、 填空题1编译过程中,每当扫描器识别出一个名字后,编译程序就查阅 符号表,看该名字是否在其中。如果该名字是一个新名字就将它添进 符号表 。2在语义分析阶段,符号表所登记的信息将用于 语义检查 和 产生中间代码;在目标代码生成阶段,符号表是 地址分配 的依据。3过程信息表中必须包括 过程名 、 参数信息 和 过程入口地址 。4编译程序使用 说明标识符的过程、函数或子程序的静态层次 区别标识符的作用域。5编译程序在其工作过程中使用最多的数据结构是 表 。它记录着源程序中的各种信息,以便查询和修改。在这些 表 中,尤以 符号表最为重要,它的生存期最长,使用也最频繁。6过程与过程引用中信息交换的方法是全局变量 和参数传递。7PASCAL语言中局部变量的作用域为说明该变量的过程或函数,除去该过程或函数内部嵌套的含有同名标识符的过程或函数。8将过程的每次执行和过程的 活动记录 相对应就解决了过程递归调用所引起的问题。9形式参数和实在参数之间的对应关系通常按 它们在源程序中的位置 来确定。10对于某个压缩了的上下文无关文法,当把每个文法符号联系于一组属性,且让该文法的规则附加以 语义规则 时,称该文法为属性文法。11文法符号的属性有两种,一种称为 继承属性 ,另一种称为 综合属性 。12一个文法符号的继承属性是通过语法树中它的 兄弟结点和父 结点的相应文法符号的属性来计算的,而综合属性是通过语法树中它的 子 结点的属性之值来计算的。13语法制导的编译程序能同时进行 语法 分析和语义 分析。14在PASCAL中,由于允许用户动态申请与释放内存空间,所以必须采用 堆式 存储分配技术。15静态区的分配对象是 全程变量和不改变其值的对象 。静态区分配的特点是 其访问地址可采用绝对地址 。二、 选择题(单项和多项)1在编译过程中,符号表的主要作用是 c d 。a. 帮助错误处理b. 辅助语法错误的检查c. 辅助语义的(即上下文有关的)正确性检查d. 辅助代码生成e. 辅助对目标代码的优化2PASCAL中过程说明的局部量地址分配在 b 。a. 调用者的数据区中b. 被调用者的数据区中c. 主程序的数据区中d. 公共数据区中3与PASCAL语言存储分配方式相似的语言是 a 。a.C语言b.BASIC语言c.FORTRAN-774运行阶段的存储组织与管理的目的是 b c 。a. 提高编译程序的运行速度b. 提高目标程序的运行速度c. 为运行阶段的存储分配作准备5动态存储分配时,可以采用的分配方法有: a b 。a. 以过程为单位的栈式动态存储分配b. 堆存储分配c. 最佳分配方法6过程调用时,参数的传递方法通常有 a b c d 。a.传值b.传地址c.传结果d.传名7过程调用的参数传递中,将出现的任一形参都代之以相应的实参的为 b ,过程体对形参的任何引用或赋值都被处理成对形式单元的间接访问的为 c ,像使用局部变量一样使用形式单元的为 a 。a.传值b. 传名c.传地址d.传结果8FORTRAN编译中存储分配 a 。a.静态存储分配b. 动态存储分配9在编译方法中,动态存储分配的含义是什么? a a. 在运行阶段对源程序中的量进行分配b. 在编译阶段对源程序中的量进行分配c. 在编译阶段对源程序中的量进行分配,在运行时这些量的地址可以根据需要改变d. 以上都不正确9名字就是标识符,标识符就是名字。 b a.正确 b.不正确10在编译时有传名功能的语言是 a 。a.ALGOL 60b.BASICc.FORTRANd.COBOL三、 在编译过程中为什么要建立符号表?符号表应包括那些内容?解答:因为在编译的过程中,始终涉及到对一些语法符号的处理,故要用到这些语法符号的相关属性。为了在需要的时候能找到这些语法成分及其相关属性,必须使用一些表格保存这些语法成分及其属性,这些表格就是符号表。符号表应包括语法符号的名字和相关的属性,不同语法符号在符号表中存放的信息不同。四、试写出下面类型的内部表示:(假设简单类型的值一律占一个单元)array 1.5 of array 1.10 of record i: integer;b: booleanend100 arrayTy 1 subTy intPtr 1 510 arrayTy 1 subTy intPtr 1 102 recorTy b boolPtr 1 i intPtr 0五、 当前层数为L,可用偏移量Offset值为101,且有下面程序,写出本层符号表的内容。const m=333;n=444;type at=array1.10 of real;rt=record i,j:integer end;VAR a,b:at; x,y:real;intPtr consKind 333mnintPtr consKind 444ataPtr typeKind falsertrecordPtr typeKind falseiintPtr fieldKind 101 recordPtrjintPtr fieldKind 102 recordPtraPtr varKind dir L 103abaPtr varKind dir L 113xrealPtr varKind dir L 123yrealPtr varKind dir L 124六、试写出标识符表的平分查表算法略(可参考数据结构中的知识)七、试写出二叉式局部符号表的管理程序(创建,填表,查表,撤消)略八、简述静态存储分配的基本思想。静态存储分配对语言有何要求?解答:静态存储分配指在编译阶段对源程序中的量分配以固定的单元,运行时始终不变。静态存储分配对语言的要求如下:1 程序中的每一个数据对象的大小在编译阶段能够确定(即不允许有可变体积的数据,如可变数组等)2 程序运行过程中的给定时刻,每一个数据对象只允许存在一个实例(即不允许有递归等)3 所有数据的性质是完全确定的(即不允许有需在运行时动态确定性质的名字)满足上述特点的语言,其程序所需要的数据空间总量在编译时是完全确定的。九、试比较静态存储分配方案和动态存储分配方案解答:静态存储分配指在编译阶段对源程序中的量分配以固定的单元,运行时始终不变。动态存储分配在运行阶段动态地为源程序中的量分配单元,但并不是所有工作全部放在运行时刻做,编译程序在编译阶段要为运行阶段设计好存储组织形式。编译程序会在编译阶段为每一个数据项安排好它在数据区中的相对位置。十、一个活动记录包括哪些信息?各信息的作用?何时填写它们?解答:为了管理过程在依次执行中所需要的信息,使用一个连续的存储块记录表示该活动的相关信息,称其为活动记录。当过程返回时,当前活动记录一般包含如下内容:1 连接数据2 返回地址3 动态链:
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年农业生物技术在种业创新中的生物技术抗逆性育种技术应用报告
- 信息技术展示课活动方案
- 信阳钓鱼民俗活动方案
- 俱乐部平日活动方案
- 倒数元旦活动方案
- 倾听半小时活动方案
- 假日课堂活动方案
- 假期品牌活动方案
- 假期购物活动方案
- 做活动搞活动方案
- 托里县铁厂沟镇工业固废垃圾填埋场项目环境影响报告书
- 金山区2024-2025学年六年级上学期期中考试数学试卷及答案(上海新教材)
- T/CUWA 60054-2023饮用水纳滤阻垢剂性能试验方法
- T/CCMA 0048-2017二手工程机械评估师
- 恒生笔试题及答案
- 传染病防治法试题(答案)
- 2025-2031年中国垃圾处理市场竞争策略及行业投资潜力预测报告
- 《神经系统疾病概述》课件2
- 2025年入团考试必考题目试题及答案
- 人工智能训练师(三级)职业技能鉴定理论考试题(附答案)
- 2025年全国保密教育线上培训考试试题库带答案(典型题)含答案详解
评论
0/150
提交评论