首页 > 课程 > 课程详情
编译原理

编译原理

  • 类别: 学历课程
  • 模式:免费课程
  • 制作机构:江南大学

课程大纲

第一章 编译程序概述

第一章 编译程序概述

第一课

第一课.html

第一课

编译原理

第一章  编译程序概述

1。1 编译程序和解释程序

翻译程序和汇编程序

基本原理

1。2 编译程序的功能分解和组织结构

一遍扫描与多遍扫描

从源程序到可执行机器代码的过程

1。3 编译程序的复杂性

1。4  编译程序的设计实现

1。5 编译程序的测试与维护

1。6 几个经典编译程序

第一课

第二课

第二课

第二课.html

第二章 一个微小编译器

第二章 一个微小编译器

第三课

第三课

第三课.html

第三章 有限自动机与词法分析器

3.1 词法分析

3.2 正则表达式

第四课

第四课.html

第四课

第五课

第五课

第五课.html

第四章 文法与语法分析

第四章 文法与语法分析

第六课

第六课

第六课.html

第五章 语义分析

语义分析内容

符号表

类型的等价性和相容性

第七课

第七课.html

第七课

第二课

第二章 一个微小编译器

2。1微小语言Micro

程序例子

2。2Micro的词法分析

TOKEN序列

TOKEN序列的实例

Micro词法分析器中最基本的子程序

Micro词法分析器中最基本的子程序

2。3Micro的语法分析

Micro的表达式

Micro的语法错误

2。4Micro的语义分析

2。5Micro的目标代码

第八课

第八课

第八课.html

第九课

第九课

第九课.html

第六章 运行时的存储空间

第六章 运行时的存储空间

第十课

第十课.html

第十课

第七章 动作文法和属性文法

第七章 动作文法和属性文法

第十一课

第十一课.html

第十一课

第十二课

第十二课.html

第十二课

第八章 中间代码生成

第八章 中间代码生成

第九章 中间代码优化

第九章 中间代码优化

第十三课

第十三课.html

第十三课

第十四课

第十四课

第十四课.html

第十章 目标代码生成

第十章 目标代码生成

第三课

第三章 有限自动机与词法分析器

3。1词法分析

两种词法分析器

单词的内部表示

保留字

保留字

空格符、制表符和换行符

括号类配对预检

向前看多个字符的处理

字符串空间

词法错误校正

词法分析的结束

第十五课

第十五课

第十五课.html

第十六课

第十六课

第十六课.html

第十七课

第十七课.html

第十七课

第十八课

第十八课.html

第十八课

第十九课

第十九课

第十九课.html

第二十课

第二十课

第二十课.html

第四课

3。2 正则表达式

基本概念

基本概念

正则表达式的定义

正则表达式的性质

正则定义

正则表达式的局限性

有限自动机

状态转换图

字符串的接受

状态转换表

例子

例子

例子

第二十一课

第二十一课.html

第二十一课

第二十二课

第二十二课

第二十二课.html

第二十三课

第二十三课.html

第二十三课

第二十四课

第二十四课

第二十四课.html

第二十五课

第二十五课.html

第二十五课

第二十六课

第二十六课

第二十六课.html

第二十七课

第二十七课.html

第二十七课

第二十九课

第二十九课.html

第二十九课

第五课

确定有限自动机的实现

直接转向方法

非确定有限自动机(NFA)

非确定有限自动机(NFA)

NFA到DFA的转换

NFA到DFA的转换

NFA到DFA的转换

求λ合并状态集的算法

从NFA求DFA的算法

例子

确定有限自动机的化简

确定有限自动机的化简

确定有限自动机的化简

状态分离法

状态分离法

状态分离法

第三十课

第三十课

第三十课.html

第三十二课

第三十二课

第三十二课.html

第三十三课

第三十三课

第三十三课.html

第三十四课

第三十四课

第三十四课.html

第三十五课

第三十五课

第三十五课.html

第三十六课

第三十六课

第三十六课.html

第三十七课

第三十七课.html

第三十七课

第三十八课

第三十八课

第三十八课.html

第三十九课

第三十九课

第三十九课.html

第六课

正则表达式到DFA的转换

正则表达式到DFA的转换

词法分析器的构造

用DFA人工构造词法分析器

DFA的说明

词法分析程序

词法分析程序

词法分析程序

使用词法分析器的生成器ScanGen

程序中状态的说明

Lex

第四十课

第四十课

第四十课.html

第四十一课

第四十一课.html

第四十一课

第四十二课

第四十二课

第四十二课.html

第四十三课

第四十三课.html

第四十三课

第四十四课

第四十四课.html

第四十四课

第七课

第四章  文法与语法分析

语法分析的功能

语法分析器和识别器

语法分析器的输入

语法错误类别及关键性错误

语法错误处理

语法错误程序校正

上下文无关文法

文法与语言

上下文无关文法的定义

产生式的简写

文法的例子

文法的例子

推导

句型、句子和语言

等价文法

第八课

文法的分类

文法的说明

扩充的BNF表示法

扩充的BNF表示法的例子

最左推导与最右推导

语法分析树与二义性

语法分析树的例子

文法的二义性

二义性问题是不可判定的

现行程序设计语言中的二义性

二义性的解决

第九课

可导的非终极符集

算法实现

求可空非终极符的算法

三种集合

求First(X),X∈(VN∪VT)

求FirstSet的算法

求Follow(A)

求FollowSet的算法

Predict集合的说明

三种集合的例子

自顶向下方法概述

最左推导的过程

线型推导过程的表示

树型推导过程的表示

自顶向下分析的要点

第十课

自底向上方法概述

自底向上分析的动作

栈式推导过程

递归下降法 --自顶向下分析

递归下降分析

递归下降的例子

主要问题

多个产生式

消除公共前缀

例子1

例子2

消除左递归

消除直接左递归的方法

消除直接左递归的方法

第十一课

消除间接左递归的方法

消除间接左递归的方法

其他的转换方法

LL分析方法 -- 自顶向下分析

LL(1)文法

LL(1)文法的说明

LL(1) 的例子

LL(1) 的例子

First集合

Follow集合

Predict集合

Predict集合

LL(1)分析表例

第十二课

LL(1)分析的驱动器

LL分析驱动程序

LL(1)分析过程

LL(1)分析过程

LL(1)中的if-then-else问题

BL语言

BL语言

二义性的LL(1)文法

二义性的LL(1)文法

LL(1)分析器的自动生成器LLGen

LLGen的输入文件

LLGen的输出

第十三课

LR方法 - 自底向上分析

短语、简单短语、句柄

子树、简单子树

例子

Shift-Reduce方法的基本原理

Shift-Reduce方法的基本原理

活前缀和归约活前缀

例子

例子

LR分析法的主要思想

LR分析法的主要思想

LR分析法的主要思想

第十四课

线性正则式的状态机

项目集

构造LRSM的方法

例子

LRSM的说明

LRSM的说明

LR缀状态机的构造

派生定理

归约活前缀的集合

基本概念

构造LRSM

第十五课

构造LR(0)活前缀状态机LRSM算法要点

构造LR(0)活前缀状态机LRSM算法

说明

GE的LRSM

GE的LRSM 说明

LR(0)和SLR(1)文法

用LRSM来构造LR分析器

用LRSM来构造LR分析器

状态变换的说明

状态变换的说明

LR缀状态机的构造

LR(0)文法

第十六课

从LRSM0构造Action表和GoTo表

LR(0)驱动器

LR(0)文法的说明

SLR(1)文法的项目

消除冲突

SLR(1)文法

SLR(1)文法的例子

GE’的LRSM0

SLR(1)_acction表

SLR(1)分析的驱动器的说明

合并式的SLR(1)分析表

SLR(1)驱动器

第十七课

LR(1)文法

LR(1)文法

LR(1)文法的说明

LR(1)文法的说明

LR(1)文法的项目

LR(1)文法的项目

LR(1)状态机的构造算法

GLR文法的LRSM2

投影函数Γ2的定义

GE’的状态机

GE’的状态机

LR(1)_acction表

第十八课

LALR(1)文法

LALR(1)文法的同心状态集

LALR(1)文法的同心状态集

构造过程的抽象描述

LR(1)同心状态表

LALR(1)-LRSM

投影函数Γ3的定义

构造LALR(1)-Action表

构造LALR(1)状态机的三种方法

术语和符号

LALR(1)展望符的求值规律

LALR(1)展望符的求值规律

用传播技术求展望符集

Gz文法的LR(0)状态机和发射表

Gz的带传播网的LR(0)状态机

用传播网自生和传播展望符的示意图

第十九课

二义性文法的处理

二义性文法的处理

二义性文法的处理

二义性文法的处理

另一种Shift - Reduce分析技术

简单优先文法

简单优先关系表

文法Gsp的分析过程

LL(1)与LALR(1)的比较

LL(1)与LALR(1)的比较

LR分析器的生成器

语法错误处理

第二十课

第五章  语义分析

语义分析内容

类型相容的问题

语义检查

语义分析器

标识符的内部表示

标识符内部表示的一种可行的结构

标识符内部表示的一种可行的结构

标识符内部表示的一种可行的结构

标识符内部表示的一种可行的结构

记录类型域名标识符

例子

标识符的属性结构

标识符的属性结构

引进记录值的概念

第二十一课

类型的内部表示

类型的内部表示

标准类型的内部表示

子域、枚举类型的内部表示

数组、集合类型的内部表示

记录类型的内部表示

文件、指针类型的内部表示

类型的内部结构

类型的内部结构

类型的内部结构

各类型的内部结构

例子

例子

第二十二课

值的内部表示

值的内部表示的例子

符号表

表处理技术

表处理技术

表处理技术

表处理技术

符号表的局部化

符号表的局部化

二叉式局部符号表

二叉式局部符号表的例子

散列式全局符号表

嵌套式局部符号表

嵌套符号表法的主要原理

嵌套符号表法的主要原理

符号表界面

符号表界面

第二十三课

类型的等价性和相容性

赋值相容性

类型的分析

类型的分析

枚举类型----EnumTYPE

枚举类型----EnumTYPE

子界类型----SubRangeTYPE

子界类型----SubRangeTYPE

数组类型----ArrayTYPE

数组类型----ArrayTYPE

集合类型----SetTYPE

集合类型----SetTYPE

文件类型----FileTYPE

文件类型----FileTYPE

指针类型----PointerTYPE

第二十四课

记录类型----RecordTYPE

记录类型----RecordTYPE

记录类型----RecordTYPE

记录类型----RecordTYPE

记录类型----RecordTYPE

记录类型----RecordTYPE

记录类型----RecordTYPE

记录类型----RecordTYPE

记录类型----RecordTYPE

声明的语义分析

声明的语义分析

标号声明部分----LabelDecPart

标号声明部分----LabelDecPart

标号声明部分----LabelDecPart

常量声明部分----ConsDecPart

常量声明部分----ConsDecPart

类型声明部分----TypeDecPart

类型声明部分----TypeDecPart

类型声明部分----TypeDecPart

第二十五课

变量声明部分----VarDecPart

变量声明部分----VarDecPart

变量声明部分----VarDecPart

变量声明部分----VarDecPart

子程序首部----RoutHead

子程序首部----RoutHead

子程序首部----RoutHead

子程序首部----RoutHead

子程序首部----RoutHead

子程序首部----RoutHead

子程序首部----RoutHead

过程⁄函数的向前声明

向前声明处理原理

执行体Body的语义分析

第二十六课

表达式分析

加法相容性

变量的类型分析

变量的类型分析

定位性标号和使用性标号

定位性标号和使用性标号

赋值语句分析

调用语句分析

形参和实参的分析

形参和实参的分析

形参和实参间的对应关系

求当前形参的类型和类别

给定表达式E求Etp和Ekind的算法

给定表达式E求Etp和Ekind的算法

结构语句分析

结构语句的算法实现

结构语句的算法实现

第二十七课

第六章  运行时的存储空间

运行时的存储空间结构

静态区的存储分配

栈区的存储分配

栈区的存储分配

堆区的存储分配

堆区空间管理

过程活动记录(Activation Record)

过程活动记录(Activation Record)

动态链(Dynamic Chain)

活跃活动记录

变量的访问环境

局部Display表方法

静态链方法

全局Display表方法和寄存器方法

非正常出口的动态链和Display表

形式过程语句和Display表

奇特型调用和Display表

分程序记录

分程序记录

第二十八课

第七章  动作文法和属性文法

动作文法和属性文法

动作文法(Action Grammar)

动作文法的例子

尾动作文法

抽象动作文法

函数的具体定义

动作文法的LL实现

不带语义栈控制的LL驱动器

带语义栈控制的LL驱动器

带语义栈控制的LL驱动器的例子

带语义栈控制的LL驱动器

带语义栈控制的LL驱动器的实现算法

带语义栈控制的LL驱动器的实现算法

带语义栈控制的LL驱动器的实现算法

LL分析状态例

LL的动作文法的例子

LL的动作文法的实现

第二十九课

尾动作文法的LR实现

使用LR分析法的主要思想

尾动作文法的LR实现的算法

尾动作文法的LR实现的例子

尾动作文法的LR实现的例子

尾动作文法的LR实现的例子

非尾动作文法的LR实现

属性文法的定义

属性文法的例子

属性文法的例子

属性文法与抽象尾动作文法的差别

继承属性和综合属性

属性规则

属性规则的例子

属性树和属性依赖图

属性求值

属性求值的例子

拷贝型属性文法

拷贝型属性文法的例子

拷贝型属性文法的例子

第三十课

类型分析的属性文法描述

属性文法例子

属性文法例子

声明分析的属性文法描述

声明分析的属性文法描述

声明分析的属性文法描述

语句分析的属性文法描述

属性文法描述

属性文法描述

属性文法描述

S―属性文法

S―属性文法的递归实现--自顶向下求值

S―属性文法的递归实现--自顶向下求值

S―属性文法的递归实现--自顶向下求值

S-属性文法的LL实现--自顶向下求值

S-属性文法的LL实现--自顶向下求值

S-属性文法的LR实现--自底向上求值

第三十一课

L-属性文法

LL-L属性文法的递归实现--自顶向下求值

LL-L属性文法的LL实现--自顶向下求值

LL-L属性文法的LL实现--自顶向下求值

L-属性文法的栈式遍历树实现

L-属性文法的栈式遍历树实现算法

L-属性文法的栈式遍历树属性栈分配

LR-L属性文法的LR实现--自底向上求值

LR-L属性文法的LR实现--自底向上求值

LR-L属性文法的LR实现--自底向上求值

第八章  中间代码生成

中间代码生成

栈式中间代码--后缀式

三地址中间代码

三地址中间代码的例子

抽象语法树和DAG

构造语法树AGT的方法

构造DAG的方法

第三十二课

多元式中间代码

非标准的多元式

非标准的多元式

多元式中间代码的例子

表达式的语义信息

表达式的ARG结构

表达式的ARG结构

ARG的例子

表达式的中间代码结构

ARG(E)的确定方法

表达式的中间代码

属性规则部分

类型转换

表达式中间代码的生成

表达式中间代码的生成

GenCode的主要工作

GenCode的算法

LR--尾动作文法描述

表达式处理的LL分析法

第三十三课

布尔表达式的短路中间代码

一般的布尔表达式

属性文法描述的形式定义

布尔表达式短路的例子

变量的中间代码

V→V。id的例子

V→V。id的LR--动作文法实现

下标变量V【E】的中间代码

V→V【E】的例子

V→V【E】的LR--动作文法实现

标识变量V↑的中间代码

V↑的LR--动作文法实现

V↑的LL--动作文法实现

第三十四课

多维下标变量

多维下标变量的地址公式

具体推导过程

计算 Addr(A【i1

多维下标变量的中间代码结构

生成多维下标变量中间代码结构的算法要点

下标变量语义信息在Sem栈中的结构

输入输出语句的中间代码

赋值语句的中间代码

赋值语句的动作文法

过程调用和函数调用的中间代码

过程调用的一般化中间代码

不保留符号表的方法

细化的中间代码结构

例子

说明

第三十五课

过程⁄函数调用的处理方法

过程⁄函数调用的处理方法

过程⁄函数调用的处理方法

过程⁄函数调用的处理方法

实参表达式的语义信息

goto语句和标号定位的中间代码

条件语句的中间代码

处理条件语句的LL-动作文法

LL-动作文法的实现

WHILE语句的中间代码

WHILE语句的算法要点和LL-动作文法

Repeat语句的中间代码

Repeat语句的算法要点和LL-动作文法

For语句的中间代码

For语句的算法要点和LL-动作文法

For语句的算法要点和LL-动作文法

For语句的算法要点和LL-动作文法

第三十六课

CASE语句的中间代码

搜索表方法

转向表方法

转向表模式下 CASE 语句的中间代码结构

CASE语句的例子

CASE语句的算法要点

CASE语句的算法要点

CASE语句的算法要点

CASE语句的LL-动作文法

CASE语句的LL-动作文法

CASE语句的LL-动作文法

变量声明的中间代码

过程和函数的中间代码

过程和函数的处理要点

第三十七课

第九章  中间代码优化

中间代码优化

优化目标和要求

优化的必要性

优化内容和难点

优化内容和难点

优化内容和难点

优化内容和难点

局部优化和全局优化

基本块和程序流图

基本块和程序流图的例子

常量表达式

常量表达式的局部优化

常量表达式优化的例子

基于常量定值分析的常量表达式全局优化

基于常量定值分析的常量表达式全局优化例子

基于常量定值分析的常量表达式全局优化例子

第三十八课

可用常量定值的数据流分析

可用常量定值的数据流分析

基于相似性的公共表达式局部优化

基于相似性的公共表达式局部优化

公共表达式局部优化的基本算法

公共表达式局部优化的例子

基于值编码的公共表达式局部优化

基于值编码的基本算法

基于值编码的ECC优化算法

复杂变量情形

基于 DAG 的公共表达式局部优化

基于 DAG 的 ECC 优化算法

DAG 方法的例子

基于可用表达式分析的公共表达式全局优化

基于可用表达式分析的例子

第三十九课

可用表达式定值的数据流分析

循环识别

外提对象和安全性

外提对象和安全性

不变式外提的实现原理

不变式外提的实现原理

不变式外提的实现原理

不变式外提的实现原理

循环不变表达式的外提算法

过程⁄函数的副作用分析

过程调用的第二种策略

过程调用的第三种策略

过程调用的例子

一种简单的外提优化

一种简单外提优化的主要思想

一种简单外提优化的主要思想

一种简单外提优化的主要思想

第四十课

循环必经点分析

循环必经点分析

循环必经点分析

归纳变量和归纳表达式

归纳变量和归纳表达式的例子

归纳表达式的优化原理

归纳表达式的优化算法

归纳表达式的优化例子

归纳表达式的优化例子

归纳表达式的优化例子

归纳表达式的优化例子

乘法运算的强度削减优化

乘法强度削减优化算法

第四十一课

第十章  目标代码生成

目标代码生成

虚拟目标代码

实际目标代码

实际目标代码的例子

窥孔优化

窥孔优化

窥孔优化

临时变量的特点

临时变量的存储空间

临时变量存储空间的例子

变量的状态描述

变量状态描述的例子

第四十二课

寄存器分类

寄存器的使用准则

寄存器的状态描述

寄存器的状态描述

寄存器的分配

寄存器的分配算法

寄存器的释放代价

寄存器的释放代价

编址模式(Addressing Mode)

编址模式(Addressing Mode)

间接编址模式的转换

目标代码生成基本技术

目标代码生成基本技术

目标代码生成的算法要点

目标代码生成的算法要点

第四十三课

目标代码生成的算法框图

目标代码生成的算法实现

目标代码生成的算法实现

多元式代码生成

多元式代码生成的实现算法

目标代码生成的例子

其他寄存器的状态追踪

多元式到树的转换

计算寄存器个数

计算寄存器个数的算法

计算寄存器个数的算法

从带寄存器个数标记的树生成代码

从带寄存器个数标记的树生成代码算法

从带寄存器个数标记的树生成代码算法

从带寄存器个数标记的树生成代码算法

从带寄存器个数标记的树生成代码算法

第四十四课

从树构造DAG

从树构造DAG的算法要点

树结点到DAG结点的映射算法

从树丛到DAG的算法

给DAG结点标上序号和虚寄存器

给DAG结点标上序号和虚寄存器的例子

给DAG结点标上序号和虚寄存器的算法

给DAG结点标上序号和虚寄存器的算法

从带排序和虚寄存器标记的DAG生成代码

代码生成器的自动化

基于指令模板匹配的代码生成技术

基于指令模板匹配的代码生成技术

基于指令模板匹配的代码生成技术

基于语法分析的代码生成技术

标号和GOTO的代码生成

标号和GOTO的代码生成

过程⁄函数调用的代码生成

过程⁄函数调用的代码生成

过程⁄函数调用的代码生成

授课教师

乐红兵 详情

-

相关课程

编译原理

编译原理

华东理工大学

编译原理

编译原理

山东交通学院

编译原理作

编译原理作

湖南大学