文章分类 - 杂-软件 / 编译原理第2版笔记
编译原理学习笔记
摘要:1. 代码生成器设计中的问题 1.1 代码生成器的输入 1.2 目标程序 1.3 指令选择 1.4 寄存器分配 1.5 求值顺序 2. 目标语言 2.1 一个简单的目标机模型 2.2 程序和指令的代价 3. 目标代码中的地址 3.1 静态分配 3.2 栈分配 3.3 名字的运行时刻地址 4. 基本块
阅读全文
摘要:1. 语法树的变体 1.1 表达式的有向无环图 1.2 构造DAG的值编码方法 2. 三地址代码 2.1 地址和指令 2.2 四元式表示 2.3 三元式表示 2.4 静态单赋值形式 3. 类型和声明 3.1 类型表达式 3.2 类型等价 3.3 声明 3.4 局部变量名的存储布局 3.5 声明的序列
阅读全文
摘要:1. 存储组织 2. 空间的栈式分配 2.1 活动树 2.2 活动记录 2.3 调用代码序列 2.4 栈中的变长数据 3. 栈中非局部数据的访问 3.1 没有嵌套过程时的数据访问 3.2 和嵌套过程相关的问题 3.3 一个支持嵌套过程声明的语言 3.4 嵌套深度 3.5 访问链 3.6 处理访问链
阅读全文
摘要:1. 语法指导定义 1.1 继承属性和综合属性 1.2 在语法分析树的结点上对SDD求值 2. SDD的求值顺序 2.1 依赖图 2.2 属性求值的顺序 2.3 S属性的定义 2.4 L属性的定义 2.5 具有受控副作用的语义规则 3. 语法制导翻译的应用 3.1 抽象语法树的构造 3.2 类型的结
阅读全文
摘要:1. 引论 1.1 语法分析器的作用 1.2 代表性的文法 1.3 语法错误的处理 1.4 错误恢复策略 2. 上下文无关文法 2.1 上下文无关文法的正式定义 2.2 符号表示的约定 2.3 推导 2.4 语法分析树和推导 2.5 二义性 2.6 验证文法生成的语言 2.7 上下文无关文法和正则表
阅读全文
摘要:Lex词法分析器生成工具(它的一个最新的变体称为Flex)。向一个词法分析器生成工具(lexical-analyzer generator)描述出词素的模式,然后将这个模式编译为具有词法分析器功能的代码。 1. 词法分析器的作用 词法分析器的主要任务是读入源程序的输入字符、将它们组成词素,生成并输出
阅读全文
摘要:1. 引言 编译器的分析阶段把源程序生成中间代码,在合成阶段把这个中间代码翻译成目标代码。 程序设计语言的语法(syntax)描述了该语言的程序的正确形式,而该语言的语义(semantics)则定义了程序的含义。 给出一个广泛使用的表示方法来描述语法,即上下文无关文法或BNF(Backus-Naur
阅读全文
摘要:1. 语言处理 一个编译器就是一个程序,它可以阅读某一种语言(源语言)编写的程序,并把该程序翻译成为一种等价的、用另一种语言(目标语言)编写的程序。 解释器(interpreter)是另一种语言处理器。它并不通过翻译的方式生成目标程序。解释器直接利用用户提供的输入执行源程序中指定的操作。 预处理器把
阅读全文
浙公网安备 33010602011771号