编译原理选择填空要点
编译原理选择填空要点
学习使用MarkDown时,恰逢编译原理考试,就当第一篇博客拿来练手了😉
目录
绪论
概述
- 编译程序绝大部分时间花在符号表管理上
- 中间代码生成和代码优化部分不是每个编译程序都必需的
- 编译程序阶段词法分析、语法分析、语义分析、中间代码生成、独立于机器的代码优化器、代码生成器、依赖于机器的代码生成器、目标机器代码
词法分析
词法分析器功能
- 词法分析程序的输出结果是单词的种别编码和单词的属性值
- 词法分析器用于识别单词
- 扫描器所完成的任务是从字符串形式的源程序中识别出一个个具有独立含义的最小语法单位即单词
NFA和DFA模型
- 都可以有多个接受状态
- 都有唯一的开始状态
- DFA是NFA的特殊形式
- DFA任何状态都没有\(\varepsilon\)转换
语法分析
移进-归约分析为输入串构造分析树是从叶节点开始的
上下文无关文法
- 组成:
- 一组非终结符
- 一组终结符
- 一个开始符号
- 一组产生式
- 文法四种类型
- 0型\(\rightarrow\)短语文法
- 1型\(\rightarrow\)上下文有关文法
- 2型\(\rightarrow\)上下文无关文法
- 3型\(\rightarrow\)正则文法
二义性概念
- 文法无二义,最左推导和最右推导语法树必定相同,推导未必相同
- 文法无二义,仅存在一个最左推导和一个最右推导
- 文法定义的语言是无限集,则文法必然是递归的
句柄概念
- 在规范规约中用句柄来刻画可归约串
- 语法无二义,句柄唯一
- 语法二义,句柄可能 不唯一
- 句柄是该句型中一个和产生式右部匹配的子串
语法制导的翻译
继承属性、综合属性
- 描述文法符号的属性:继承属性、综合属性
- 综合属性依赖于此属性的继承属性和分析树中子节点的属性
- 继承属性依赖于分析树中父节点和兄弟节点的属性
S属性定义
- 仅仅使用综合属性
- 对于S属性定义,分析树中各节点属性的计算是自下而上完成的
注释分析树
- 注释分析树的概念为每个结点的属性值都标识出来的分析树
L属性定义
- S属性定义属于L属性定义
标记非终结符
L属性定义的自下而上计算中辅助非终结符引入的目的
- 删除翻译方案中的嵌入动作
- 模拟继承属性的计算
- 确定分析栈上属性的位置
运行时存储
衬垫空白区、对齐
- 衬垫空白区是指局部数据在存储安排时考虑对齐问题引起的无用空间
静态作用域、嵌套深度
- 静态作用域有两种不同的嵌套方式:无过程嵌套的静态作用域、有过程嵌套的静态作用域
- 程序所需的数据空间在程序运行中才可以完成的是动态作用域
- 变量的嵌套深度定义为他的声明所在的过程的嵌套深度
- 过程的display表记录了过程的嵌套层次
- 如果活动记录中没有display表则说明有递归、无嵌套
代码生成
指令的附加代价
- 指令的代价是源地址模式的附加代价和目标地址模式的附加代价之和再加1
- 寄存器地址模式的附加代价为0
- 绝对地址和间接变址的附加代价相同
- 指令的附加代价对应于指令以字计量的长度

浙公网安备 33010602011771号