名词解释:
1、编译原理是计算机专业的一门重要专业课,旨在介绍编译程序构造的一般原理和基本方法。
2、解释程序是高级语言翻译程序的一种,它将源语言书写的源程序作为输入,解释一句后就提交计算机执行一句,并不形成目标程序。
3、句型
每个语法树的叶组成一个句型。
句柄
一个句型的最左直接短语称为该句型的句柄。
4、句
5、最右/最左推导规模推导
若x和y是符号串α中有两个以上的非终结符号时,对推导的每一步坚持把α中的最左非终结符号进行替换,称为最左推导
最右推导:在推导过程中,每次直接推导都替换句型中最右边的非终结符。
6、等价状态/多余状态
多余状态:从自动机开始状态出发,任何输入也不能达到的状态,或从该状态到达不了的状态。
等价状态:从状态A出发,能读出某一字符串而停止终态,从状态B出发也能得出同一字符串停止终态。反之亦然。
7、语法树
在词法分析的基础上将单词序列分解成各类语法短语,描述上下文无关文法的句型推导的直观工具。
8、语义字
表示按照各种表示方法所表示的各个记号的特定含义。
简答:
一、编译程序的组成成分及其作用
一个典型的编译程序通常包含 6 个组成部分,它们是词法分析程序、语法分析程序、语
义分析程序、中间代码生成程序、中间代码优化程序、目标代码生成程序。
其各部分的主要功能简述如下。
词法分析程序:输人源程序,拼单词、检查单词和分析单词,输出单词的机内表达形式。
语法分析程序:检查源程序中存在的形式语法错误,输出错误处理信息。
语义分析程序:进行语义检查和分析语义信息,并把分析的结果保存到各类语义信息表
中。
中间代码生成程序:按照语义规则,将语法分析程序分析出的语法单位转换成一定形式
的中间语言代码,如三元式或四元式。
中间代码优化程序:为了产生高质量的目标代码,对中间代码进行等价变换处理。
目标代码生成程序:将优化后的中间代码程序转换成目标代码程序。
二、常用中间代码有哪些
逆波兰式,三元式,四元式,树形
三、静态链和动态链的作用定义(第10章)
静态链:指定义该过程的直接过程运行时刻的数据区的首地址。
作用:为相应过程内的所有变量提供了寻址途径。
动态链:指向调用该过程前正在运行的过程的数据区的首地址
作用:当一个过程运行结束后恢复其调用前的运行状态。
四、目标代码生成时使用
把中间代码变换成特定机器上的绝对指令代码或可重定位的指令代码或汇编语言代码。
五、寄存器的主要思想
在四元式中,每当一个变量被定义时,首先产生把值送入某一寄存器的目标代码,然后在一个表里注明该变量的值在哪一寄存器中,只有当寄存器被剥夺且变量的值以后还有用时,才把寄存器中的现行值记入内存单元。当一个变量的值以后不再被引用时,就不必保存到内存中。
大题:
1、 BNF范式
2、 二义性
3、 自动机正则式
4、 自底向上优先分析
5、 LR(0)
6、 求逆波兰式
7、 符号表求内部表示
8、 公共表达式,节省值编码法