《编译原理》期末复习题.pdfVIP

  • 10
  • 0
  • 约8.84千字
  • 约 6页
  • 2021-11-09 发布于广东
  • 举报
一、简答题 1、简述 DFA 与 NFA 有何区别 ? 答: DFA 与 NFA 的区别表现为两个方面 :一是 NFA 可以若干个开始状态,而 DFA 仅只一个 开始状态。 另一方面, DFA 的映象 M 是从 K×∑到 K ,而 NFA 的映象 M 是从 K×∑到 K 的 子集, 即映象 M 将产生一个状态集合(可能为空集) ,而不是单个状态。 2、 何谓优化?按所涉及的程序范围可分为哪几级优化? 1)优化:对程序进行各种等价变换,使得从变换后的程序出发,能产生更有效的目标代码。 (2) 三种级别:局部优化、循环优化、全局优化。 3、短语、简单短语、句柄之间的关系? 语法树子树的末端节点符号串既是语法树所描述与对子子树的根的短语; 简单子树的标点符 号串既是简单短语;最左简单子树的末端符合既是句柄。 4、语法分析的任务是什么?输入、输出分别是什么? 任务 是在词法分析识别出单词符号串的基础上。 分析并判定程序的语法结构是否符合语法规 则;输入:源程序;输出:单词符号串。 5、静态链和动态链分别存放何值?作何用途? 静态链 是指向静态直接外层最新活动记录地址的指针, 作用是用来访问非局部数据; 动态链 是指向调用该过程前的最新活动记录的指针。 作用是运行时使运行栈上个数据区按动态建立 次序结成链。 6、综合属性和继承属性的区别?其值在语法树中的传递方向是怎样的? 区别 :综合属性用于自上而下传递信息,继承属性用于自上而下传递信息。 方向 :在语法树 中,一个节点的综合属性的值由其子节点的综合属性值决定 ;一个节点的继承属性由此节点 的父节点和 /或兄弟节点的属性确定的。 7、什么是优化?优化的有效性包括哪两个方面? 对程序进行各种等价变换, 使得从变化后的程序出发, 能生成更有效的目标代码。 通称为优 化。①、在目标代码生成以前, 对语法分析后的中间代码进行的, 这类优化不依赖于具体的 计算机;②、在目标代码生成时进行的,它在很大程度上依赖于具体的计算机。 8、编译程序和解释程序的区别?哪个更通用? 区别 :编译程序是这样的程序: 源语言是高级语言, 而目标语言是汇编语言或机器语言的低 级语言。 而翻译程序以该语言写的源程序作为输入, 但不产生目标程序, 而是边解释边执行 源程序本身。编译程序更通用。 9、什么是算符文法?什么是算符优先文法? 一个文法, 如果它的任一产生式的右部都不含两个相继的非终结符则称算符文法; 而算符优 先文法就是在算符文法中加上了优先关系 10、静态存储分配和动态存储分配的区别? 11、静态链和 DISPLAY 作何用途?二者的区别是什么? 都是为了实现非局部名字的访问; 静态链是一个过程的当前活动记录指向其直接外层的最新 活动记录, DISPLAY 是引用一个指针数组来记录现行层,直接外层的最新活动记录。 12、堆式存储分配的两种管理方式?其中一种有三个内存分配方法是哪几种? 定长块管理和变长块管理。①、 首次满足法:只要在空闲块链表中找到满足需要的一块, 就 进行分配。 ②、最优满足法: 将空闲块中的一个不小于申请块且最接近与申请块的空闲块分 配给用户。 ③、最差满足法: 将空闲块表中不小于申请块且是最大的空闲的一部分分配给用 户。 13、编译程序的前端与后端的区别?区分前后端的好处是什么? 区别:后端不依赖源语言,而仅与中间语言;前端:与源程序语言有关,与目标代码无关。 后端:与目标代码有关。 14、写出编译过程的五个阶段? 词法分析、语法分析、语义分析与中间代码的生成、优化、目标代码优化

文档评论(0)

1亿VIP精品文档

相关文档