不要因为现实的平凡,就否定了那华丽的梦想!
|
编译原理
《编译原理》课程是计算机科学与技术专业的必修课程。本课程主要介绍程序设计语言编译程序构造的基本原理和设计方法,包括:编译程序概述、高级语言及其语法描述、词法分析、语法分析、属性文法和语法制导翻译、语义分析和中间代码产生、符号表、运行时存储空间组织、优化、目标代码生成等。
理论和实践相结合是编译程序设计的重要特色。形式语言和自动机理论为编译程序的设计提供了坚实的理论基础,正是在科学理论的保证下,才形成了一系列先进的编译程序设计方法和工具,使得编译程序的构造具有很高的系统性和自动化程度。
⭐⭐⭐
具备计算机程序设计语言和
程序设计知识,对数据结构
与算法、计算机原理、离散
数学等相关知识有一定了解
更好。
语音 | 字幕 | |
---|---|---|
中文 | ✅ | ✅ |
英文 | ❌ | ❌ |
无
1.什么是编译程序
2.学习目的——计算思维
3.编译与计算思维——编译理论与技术
4.编译与计算思维——抽象
5.编译与计算思维——自动化
6.编译与计算思维——分解
7.编译与计算思维——递归
8.编译与计算思维——权衡
9.编译原理和方法的应用
10.概述
11.词法分析
12.语法分析
13.中间代码产生
14.优化
15.目标代码产生
16.编译程序的结构
17.编译程序的生成
18.小结
19.常用的高级程序设计语言
20.程序设计语言的定义
21.高级语言的分类
22.程序结构
23.数据结构与操作
24.标识符与名字
25.数据结构
26.语句与控制结构
27.小结(2)
28.文法
29.语言描述的几个基本概念
30.上下文无关文法
31.文法生成语言
32.句型和句子练习
33.文法与语言
34.推导与语法树
35.语法树与二义性
36.形式语言鸟瞰
37.小结(3)
38.词法分析概述
39.词法分析器的结构
40.超前搜索
41.状态转换图
42.状态转换图的实现
43.小结(4)
44.回顾
45.正规集和正规式
46.确定有限自动机
47.非确定有限自动机
48.小结(5)
49.回顾(2)
50.NFA转换成DFA
51.DFA的化简——状态的等价性
52.DFA的化简——化简算法
53.小结(6)
54.回顾(3)
55.为NFA构造正规式
56.为正规式构造NFA——数学归纳法证明
57.为正规式构造NFA——算法及示例
58.小结(7)
59.词法分析程序自动生成——LEX
60.语法分析基本概念
61.自上而下分析面临的问题
62.自上而下分析面临的问题小结
63.消除直接左递归
64.消除直接左递归示例
65.消除间接左递归
66.消除间接左递归示例
67.FIRST集合与提取公共左因子
68.FOLLOW集合
69.LL(1)文法条件
70.FIRST集合的构造
71.FOLLOW集合的构造
72.示例
73.小结(8)
74.回顾LL(1)文法和LL(1)分析法
75.递归下降分析器
76.递归下降分析器设计示例
77.扩充的巴科斯范式和语法图
78.JavaCC简介
79.小结(9)
80.回顾LL(1)分析法
81.预测分析程序的工作原理
82.预测分析示例
83.构造预测分析表的算法
84.构造预测分析表示例
85.LL(1)文法与二义性
86.小结(10)
87.语法分析
88.移进-归约分析示例
89.短语
90.短语和直接短语
91.分析过程描述
92.小结
93.自下而上分析法回顾
94.优先关系与算符优先文法
95.算符优先文法示例
96.FIRSTVT和LASTVT集合
97.FIRSTVT和LASTVT集合的计算
98.FIRSTVT和LASTVT集合计算实例
99.构造优先关系表的算法
100.构造优先关系表示例
101.最左素短语
102.算符优先分析算法描述
103.小结(2)
104.LR分析法概述
105.句柄和规范归约
106.LR分析法
107.LR分析示例
108.LR文法
109.小结(3)
110.LR分析法回顾
111.活前缀
112.构造识别活前缀的DFA
113.通过计算项目集规范族构造识别活前缀的DFA-有效项目
114.通过计算项目集规范族构造识别活前缀的DFA-LR(0)项目集规范
115.构造LR(0)分析表的算法
116.LR(0)分析示例
117.小结(4)
118.更强的LR分析
119.SLR(1)冲突解决办法
120.SLR(1)分析表的构造
121.SLR(1)分析表的构造示例
122.一个非SLR(1)文法
123.LR(1)有效项目
124.LR(1)分析表构造
125.LR(1)分析表的构造示例
126.分析器产生工具
127.小结(5)
128.属性文法概念
129.属性依赖
130.带注释的语法树
131.小结(6)
132.属性计算
133.依赖图
134.树遍历算法
135.树遍历示例
136.一遍扫描
137.小结(7)
138.S-属性文法
139.L-属性文法的定义
140.翻译模式
141.翻译模式示例
142.语义动作执行时机统一
143.消除翻译模式中的左递归
144.消除翻译模式中的左递归的一般方法
145.递归下降翻译译器的设计
146.小结(8)
147.中间语言
148.中间语言的特点和作用
149.后缀式
150.图表示法
151.三地址代码
152.小结(9)
153.赋值语句的属性文法
154.赋值语句的翻译模式
155.数组元素地址计算
156.带数组元素引用的赋值语句翻译
157.类型转换
158.小结(10)
159.布尔表达式及其计算
160.按数值表示法翻译
161.带优化的翻译
162.布尔表达式的属性文法
163.根据属性文法翻译布尔表达式
164.一遍扫描实现布尔表达式的翻译
165.布尔表达式翻译模式
166.布尔表达式的翻译示例
167.小结(11)
168.控制语句的翻译
169.if语句的属性文法
170.while语句的属性文法
171.控制语句的属性计算示例
172.if语句的一遍扫描翻译
173.while语句的一遍扫描翻译
174.复合语句的一遍扫描翻译
175.一遍扫描翻译控制语句示例
176.小结(12)
177.符号表的作用与组织
178.符号表的整理和查找
179.符号表的内容
180.名字的作用域分析
181.名字的作用域分析示例
182.小结(13)
183.参数传递
184.参数传递方式-传地址
185.参数传递方式-得结果
186.参数传递方式-传值
187.参数传递方式-传名
188.小结(14)
189.过程的活动与生存期
190.运行时的存储组织
191.静态存储管理
192.动态存储管理
193.运行时存储器的划分
194.非嵌套过程语言的动态存储管理
195.嵌套过程语言的动态存储管理
196.静态链方法
197.静态链方法示例
198.Display表方法
199.Display表的维护
200.Display表方法示例
201.过程调用和返回
202.小结(15)
203.优化的基本概念
204.优化示例
205.小结(16)
206.局部优化
207.基本块划分算法
208.流图
209.基本块的DAG表示
210.基本块优化算法的思想
211.构造基本块的DAG的示例
212.基本块的DAG构造算法
213.小结(17)
214.循环优化
215.代码外提
216.外提的条件
217.代码外提算法
218.强度消弱
219.小结(18)
220.目标代码生成
221.目标机器模型
222.一个简单代码生成器
223.待用信息和活跃信息
224.计算待用信息和活跃信息的算法
225.待用信息和活跃信息计算示例
226.变量地址描述和寄存器描述
227.代码生成算法
228.寄存器分配算法
229.代码生成示例
230.小结(19)