编译原理简答题

上传人:m**** 文档编号:474102034 上传时间:2022-12-12 格式:DOCX 页数:1 大小:14.07KB
返回 下载 相关 举报
编译原理简答题_第1页
第1页 / 共1页
亲,该文档总共1页,全部预览完了,如果喜欢就下载吧!
资源描述

《编译原理简答题》由会员分享,可在线阅读,更多相关《编译原理简答题(1页珍藏版)》请在金锄头文库上搜索。

1、1、简述典型编译程序在各个工作阶段所完成的任务词法分析:对构成源程序的字符串进行扫描和分解,识别出 一个个具有独立意义的单词。语法分析:根据语言的语法规则对单词符号串(符号序列)进行 语法分析,识别出各类语法短语(可表示成语法树的语法单位), 判断输入串在语法上是否正确语义分析:按语义规则对语法分析得到的语法单位进行语义 分析,审查源程序有无语义错误,为代码生成阶段收集类型 信息,并进行类型审查金和违背语言规范的报错处理 中间代码生成:将语义分析得到的源程序变成一种结构简单、 含义明确、容易生成、容易翻译成目标代码的内在代码形式 代码优化:对中间代码或目标代码进行变换改造等优化处理, 使生成的

2、代码更高效目标代码生成:将中间代码变换成特定目标机器上的绝对指 令代码或可重定向的指令代码或汇编指令代码2、mian () int x=10, y; 保留字:main界符:(、)、保留字:int标识符:x运算符:=常数:10标识符:y 界符:;、3、文法、句型、句子和语言的形式定义(注意下标)文法G定义为四元组(VN, VT, P,S)VN :非终结符(语法实体、变量)集。VT :终结符集。P:规则(a - B)集合,aW (VNUVT)*且至少包含一个 非终结符,BW(VNUVT)* 。S:开始符(识别符),它是一个非终结符,至少要在一条规 则中作为左部出现设G是一文法,如果符号串x是从文法

3、的识别符号推导出 来的,既有戸x,则称x是文法GS的句型。若符号串x还 满足仅由终结符号组成的条件,既x (其中xWVT*)则 称x为GS的句子。语言:文座GS的语言是GS的所有句子构成的集合。即L(G)=x 丨 S-,且 xWVT* 4、确定的有穷自动机(DFA)和不确定的有穷自动机(NFA)的五 元组定义确定的有穷自动机(DFA)(1) K是一有穷状态集;(2) 是一有穷字母表,称输入符号字母表;f是转换函数,是在KK上的映射。如f(ki,a)=kj;(4) S是唯一的一个初态(是一个元素);(5) Z K,是一终态集,终态也称结束态或可接受态或可识 别态。不确定的有穷自动机(NFA)1)

4、K是一有穷状态集;(2) 是一有穷字母表,称输入符号字母表;(3) f是转换函数,是在K*K的子集上的映射;S K,是非空初态集(是一个集合);(5)Z K,是一个终态集,终态也称结束态或可接受态。5、左素短语的定义和由给定句型寻找最左素短语的方法,并 举例说明寻找方法最左素短语:设有文法G,其句型的素短语是一个短语, 它至少包含一个终结符,并除自身外不包含其他素短语,最 左边的素短语称最左素短语。最左素短语时应该满足的条件: ai-1aj+1。例如:在句型 AaBbdDefGg 中, 如果最左素短语为BbdDe,则其中的终结符应满足如下优先 关系:ab、b三d三e和ef6、简述LR(0)、S

5、LR(1)、LR(1)、LALR四类文法的相互关系 一个 LR(0)文法肯定是 SLR(1)、LR(1)、LALR(1)文法一个SLR(1)文法肯定是LR(1)、LALR(1)文法,不一定是LR(0) 文法一个LALR(1)文法肯定是LR(1)文法,不一定是LR(0)文法和 SLR(1)文法一个LR(1)文法不一定是LALR(1)文法,不一定是LR(0)文法 和SLR(1)文法7、简述语法制导翻译和属性文法的概念从概念上讲,基于属性文法的语义处理过程即语法制翻译通 常是这样的:对单词符号串进行语法分析,构造语法分析树, 然后根据需要构造属性依赖图,遍历语法树并在语法树的各 结点处按语义规则进行

6、计算。一个属性文法是一个三元组A=(G, V, F):其中G表示一 个上下文无关文法;V表示一个属性的有穷集;F表示关于属 性的断言或谓词的有穷集;每个属性与文法的某个非终结符 或终结符相联系;谓词与文法规则相联系。8、简述符号表的3个主要功能符号表的作用和地位:收集符号属性、上下文语义的合法性 检查的依据、作为目标代码生成阶段地址分配的依据。9、简述与通用标识符的存储位置或格式相关的标识符的主 要属性及作用符号表中的标示符一般设置的属性:符号名、符号的类型、 符号的存储类别、符号的作用域及可视性、符号变量的存储 分配信息 苴他属性10、分程序结构的语言,为其符号表建立重名动态下推链的 目的是

7、什么概述编译过程中重名动态下推链的工作原理 重名动态下推链的目的是保证在合法重名定义情况下,提供 完整确切的符号表项,从而保证引用变量的上下文合法性检 查和非法重名定义检查。其工作原理:当发生合法重名定义 时,将上层重名表项下推到链中,而在符号表中原重名表项 处登陆当前重名定义的符号属性;在退出本层时,将最近一 次下推到表项回推,登陆到符号表中原重名表项处。11、简述静态存储分配、栈式动态存储分配、堆式动态存储 分配的特点和主要用途静态存储分配:其特点是在编译时刻确定存储位置,访问效 率高。主要用于子程序的目标代码段、全局数据目标。栈式动态存储分配:其特点是嵌套调用次序,先进后出、生 存期限与

8、本次调用。自动释放。主要用于过程的局部环境、 活动记录。堆式动态存储分配:其特点是将内存空间分为若干块,根据 用户要求分配;无法满足时,调用无用单元收集程序,将被 释放的块收集起来重新分配,主要用于动态数据结构,即存 储空间的动态分配和释放。12、简述运行目标程序时所需空间种类目标程序运行时所需空间包括:容纳目标代码所占用空间和 目标代码运行时的数据空间。目标代码运行时的数据空间主要包括:用户定义的各种类型 的数据对象(变量和常量)所需的存储空间;作为保留中间 结果和传递参数的临时工作单元;调用过程时所需的连接单 元,组织输入输出所需的缓冲区。目标程序运行时的存储区划分:目标代码区、静态数据区

9、、 栈区、堆区13、过程参数的传递方式有几种简述传地址和传值两种参数 传递方式的区别参数的传递方式有传值和传地址两种。传值方式是最简单的参数传递方式。还方式计算出实参的值, 然后把它传给被调过程:1.形式参数当作过程的局部变量处 理。2.调用过程计算实参的值,并将它们的右值放在为形式单 元开辟的空间中。3.被调用过程执行时,就像使用局部变量一 样使用这些形式单元。传地址方式,也称引用调用。该方式调用过程传给被调用过 程的是指向实参存储位置的指针。1.如实参是一个名字或是具有左值的表达式,则左值本身传递 过去。2.如实参是一个表达式,比如a+b或2,而没有左值, 则表达式先求值,并存入某一位置,

10、然后该位置的地址传递 过去。3.被调过程中对形式参数的任何引用和赋值都通过传递 到被调过程的指针被处理成间接访问。14、简述决定目标代码的因素决定空间目标代码的因素主要取决于具体的机器结构、指令 格式、字长及寄存器的个数和种类,并与指令的语义和所用 操作系统。存储管理等密切相关。又由于目标代码的执行效 率在很大程度上依赖与寄存器的使用,所以,目标代码与寄 存器的分配算法也有关。15、简述可重定向编译程序的概念和支持可重定向编译的关 键技术。可重定向编译程序是指能够根据不同的目标机生成相应的目 标代码的编译程序,它将与目标机相关的部分单独编写成不 同模块,根据不同的目标机调用不同的模板。支持可重

11、定向编译的关键技术主要包括:1)中间表示技术: 区别于四元式等传统的中间表示,支持可重定位向编译的中 间表示应在适当的抽象层次上,向上能够支持多语言映射、 向下能够适应多平台转换后宜于进行各种进化。2)机器描述 技术:区别于传统的假定式体系结构抽象模型的描述技术, 支持可重定位向编译的机器描述机制应既能描述系统和硬件 的共性,又能描述它们各自的特性,且能适应于不同编译程 序的处理。3)代码生成程序的构成技术:为简化开始过程、 提高代码可靠性,支持代码生成程序的自动构造工具是关键 技术和主要难点。4)目标机描述与目标代码生成的接口技术: 在重定向编译程序的开始过程中,抽取一系列函数和数据结 构作为目标机描述与目标机代码生成的接口可以简化编译程 序的开发,提咼编译程序的效率。/

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号