编译原理基础

编译原理基础
作 者: 刘坚
出版社: 西安电子科技大学出版社
丛编项: 新世纪计算机类本科系列教材
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 编译原理
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

暂缺《编译原理基础》作者简介

内容简介

本书介绍程序设计语言和语言翻译的基本原理和技术,内容包括词法分析、语法分析、语义分析与中间代码生成、运行时的存储分配、以及目标代码的生成等。本书可以作为工科院校计算机专业或非计算机专业的本科生教材,也可以作为软件技术人员或程序设计语言爱好者的参考书。

图书目录

第1章 引言

1. 1 从面向机器的语言到面向人类的语言

1. 2 语言之间的翻译

1. 3 编译器与解释器

1. 4 编译器的工作原理与基本组成

1. 4. 1 通用程序设计语言的主要成份

1. 4. 2 以阶段划分编译器

1. 4. 3 编译器各阶段的工作

1. 4. 4 编译器的分析/综合模式

1. 4. 5 编译器扫描的遍数

1. 5 编译器的编写

1. 6 本章小结

习题

第2章 词法分析

2. 1 词法分析中的若干问题

2. 1. 1 记号. 模式与单词

2. 1. 2 记号的属性

2. 1. 3 词法分析器的作用与工作方式

2. 1. 4 输入缓冲区

2. 2 模式的形式化描述

2. 2. 1 字符串与语言

2. 2. 2 正规式与正视集

2. 2. 3 记号的说明

2. 3 记号的识别--有限自动机

2. 3. 1 不确定的有限自动机(Nondeterministic Finite Automata,NFA)

2. 3. 2 确定的有限自动机(Deterministic Finite Automata,DFA)

2. 3. 3 有限自动机的等价

2. 4 从正规式到词法分析器

2. 4. 1 从正规式到NFA

2. 4. 2 从NFA到DFA

2. 4. 3 最小化DFA

2. 4. 4 由DFA构造词法分析器

2. 4. 5 词法分析器生成器简介

2. 5 本章小结

习题

第3章 语法分析

3. 1 语法分析的若干问题

3. 1. 1 语法分析器的作用

3. 1. 2 语法错误的处理原则

3. 2 上下文无关文法(Context Free Grammar,CFG)

3. 2. 1 CFG的定义与表示

3. 2. 2 CFG产生语言的基本方法--推导

3. 2. 3 推导. 分析树与语法树

3. 2. 4 二义性与二义性的消除

3. 2. 4. 1 二义性(Ambiguity)

3. 2. 4. 2 二义性的消除

3. 3 语言与文法简介

3. 3. 1 正规式与上下文无关文法

3. 3. 2 上下文有关语言(Context Sensitive Language, CSL)

3. 3. 3 形式语言与自动机简介

3. 4 自上而下语法分析

3. 4. 1 自上而下分析的一般方法

3. 4. 2 消除左递归

3. 4. 3 提取左因子

3. 4. 4 通归下降分析

3. 4. 5 预测分析器

3. 4. 5. 1 非递归预测分析器的工作模式

3. 4. 5. 2 构造预测分析表

3. 4. 5. 3 LL(1)文法

3. 5 自下而上语法分析

3. 5. 1 自下而上分析的基本方法

3. 5. 1. 1 规范归约与"剪句柄"

3. 5. 1. 2 移进-归约分析器的工作模式

3. 5. 2 LR分析

3. 5. 2. 1 LR分析与LR文法

3. 5. 2. 2 构造SLR(1)分析器

3. 5. 2. 3 非SLR(1)文法

3. 5. 2. 4 基于LR分析的语法分析器生成器简介

3. 6 本章小结

习题

第4章 语法制导翻译生成中间代码

4. 1 语法制导翻译简介

4. 1. 1 语法与语义

4. 1. 2 属性与语义规则

4. 1. 3 语义规则的两种形式

4. 1. 4 LR分析翻译方案的设计

4. 1. 5 递归下降分析翻译方案的设计

4. 2 中间代码简介

4. 2. 1 后缀式

4. 2. 2 三地址码

4. 2. 2. 1 三地址码的直观表示

4. 2. 2. 2 三地址码的实现:三元式与四元式

4. 2. 3 图形表示

4. 3 符号表简介

4. 3. 1 符号表条目

4. 3. 2 构成名字的字符串

4. 3. 3 名字的作用域

4. 3. 4 线性表

4. 3. 5 散列表

4. 4 声明语句的翻译

4. 4. 1 变量的声明

4. 4. 2 数组变量的声明

4. 4. 3 过程的定义与声明

4. 4. 3. 1 左值与右值

4. 4. 3. 2 参数传递

4. 4. 3. 3 作用域信息的保存

4. 4. 4 记录的域名

4. 5 简单算术表达式与赋值句

4. 5. 1 简单变量的语法制导翻译

4. 5. 2 变量的类型转换

4. 6 数组元素的引用

4. 6. 1 数组元素的地址计算

4. 6. 2 数组元素引用的语法制导翻译

4. 7 布尔表达式

4. 7. 1 布尔表达式的作用与结构

4. 7. 2 布尔表达式的计算方法

4. 7. 3 数值表示与直接计算的语法制导翻译

4. 7. 4 短路计算的语法制导翻译

4. 7. 5 拉链与回填

4. 8 控制语句

4. 8. 1 标号与无条件转移

4. 8. 2 条件转移

4. 9 过程调用

4. 10 本章小结

习题

第5章 运行环境

5. 1 过程的动态特性

5. 1. 1 过程与活动

5, 1. 2 控制栈与活动记录

5. 1. 3 名字的绑定

5. 2 运行时数据空间的组织

5. 2. 1 运行时内存的划分与数据空间的存储分配策略

5. 2. 2 静态与动态分配简介

5. 3 栈式动态分配

5. 3. 1 控制栈中的活动记录

5. 3. 2 调用序列与返回序列

5. 3. 3 栈式分配中对非本地名字的访问

5. 3. 4 参数传递的实现

5. 4 本章小结

习题

第6章 代码生成

6. 1 代码生成的相关问题

6. 2 简单的计算机模型

6. 3 简单的代码生成器

6. 3. 1 基本块与程序流图

6. 3. 2 寄存器分配原则

6. 3. 3 代码生成算法

6. 4 本章小结

习题

参考书目