第1章 学前导学(要有准备有目标的学)5 S0 i. T1 V0 X9 A' w0 b
1-1 学前方向标 (11:51)
5 C" i: k7 k6 p v3 e$ I/ T1-2 课程中的工具以及学习方法 (13:17)6 q2 v* H. @% t
1-3 一份老仙学习秘诀请你签收" l1 O% p4 |# J8 z* M
第2章 计算机理论引导(理解计算机)5 X1 ]. e/ v4 B4 T, n
2-1 什么是计算机 (16:07): K0 ?; W$ Z9 f% N& i0 c$ X3 {
2-2 CPU的工作原理——内存、寄存器和ALU (17:40)
. [: I* c) P0 K! n3 I2-3 指令入门(1)——指令的组成部分 (09:11)
{$ q* _/ ?6 F6 D5 T! `2-4 指令入门(2)——寻址模式、浮点数和指令分类 (17:30)$ R+ g4 P) v, k S) u% t
2-5 我的第一个汇编程序——实现一个求阶乘的递归函数(思路部分) (19:11)4 H3 ?* ]; m' T9 P- j/ E+ P
2-6 我的第一个汇编程序——实现一个求阶乘的递归函数(coding) (27:15)
' W; g, U" y* V5 [2-7 中断和中断向量 (14:13)% ~6 O+ P0 \" m8 r9 W+ z
第3章 【 编译原理】概述(理解编译器)
& b$ D* R2 E- X7 G" \3-1 编译原理课程介绍 (06:51): Q8 K m! Z" l! r, _" G% p
3-2 编译原理——研究翻译的科学 (09:26)
# z2 D' s: w3 O5 y2 q- j3 M3-3 编译器和解释器 (09:53)
c1 `# N4 n. X; V4 Q8 u* i3-4 编译器的工作流程 (13:30)
' `4 q, B1 f( F3-5 【讨论题】编译器架构有什么不同?
1 C2 }2 O4 E+ Z2 Y8 x+ @/ d第4章 【 编译原理】词法分析(实现一个词法分析器)
/ G/ x, ?! \0 L4-1 词法分析器简介 (03:10), _7 l( Y& ~0 g" z8 ~6 H
4-2 (编程lexer01)词法分析器的接口(Java和Js) (09:42)
. c+ d2 ?* `" ^6 t- u. [* g& n4-3 编译器基础能力设计——实现流的peek和putBack操作 (07:39)
1 \" e- e3 P3 G( f3 l" |& a5 J `4-4 (编程Lexer01 Java)——实现流的peek和putBack操作 (20:22)
( l6 x- _# |1 H9 A& n4 w4-5 (编程Lexer02 Javascript)——实现流的peek和putBack操作 (18:24)
( h' S0 ~- Z0 h( @# T4-6 tips:坚持编写测试用例 (03:24)
& P m5 M, s( {. h! y9 k; h* K- {4-7 词法相关理论和正则 (13:10)( ^: O6 o4 F4 I: r: Q
4-8 (编程lexer03 Java)——有穷状态机实现词语提取(上) (17:53)2 {% s5 Q t5 U7 h/ P
4-9 (编程lexer03 Java)——有穷状态机实现词语提取(下) (23:19), H+ @& q' [4 h1 c! |9 d
4-10 (编程lexer03 Javascript)——有穷状态机实现词语提取(上) (13:47)
; `8 Z4 |8 C; I* q4-11 (编程lexer03 Javascript)——有穷状态机实现词语提取(下) (19:53)1 L- m. t5 V% z
4-12 (编程lexer04 Java)——完整的词法分析器 (16:39)" y' h* A! P* W. ~# x/ L
4-13 (编程lexer04 Javascript)——完整的词法分析器 (13:36)
7 m5 p6 l! b+ h; U* L8 ^) c' r第5章 【 编译原理】语法分析(实现一个语法分析器)
k. Z2 w" ]4 M o @: u( O5-1 数据结构引导——树和抽象语法树 (28:24)4 c [3 c3 P( G7 U8 A, M
5-2 (parser01 java) 定义抽象语法树 (11:39)8 Q7 e4 j6 P. }1 e# l
5-3 (parser01 javascript) 定义抽象语法树 (12:45)
2 r8 N4 K, ~+ T; a5-4 最简表达式分析过程 (09:51)
1 r a# N/ l" N3 l+ w; {* ^5-5 (编程parser02 java)——实现最简Parser (20:37)
: R3 m% ?" }+ J7 `5-6 (编程parser02 javascript——实现最简Parser (19:59)
% ~, b, D, Z: e/ B; E5-7 TinyScript表达式解析——优先级和去左递归 (12:50)
7 O# C2 ^" F3 k% j5 U/ I5-8 (编程 parser03 java) TinyScript表达式解析 (28:36)8 S9 I Z/ W+ I# H2 r9 U6 _/ J0 {
5-9 (编程 parser03 javascript) TinyScript表达式解析 (23:29)1 u2 p* [/ X3 v: U; b' @
5-10 (编程 parser04 java) 树的后序遍历——表达式验证 (14:42)
3 F; K) i& B6 E; N1 y9 |2 {9 _6 Q5-11 (编程 parser04 javascript) 树的后序遍历——表达式验证 (14:30)
5 M7 Y8 c ]5 Q3 _7 Y5-12 语法分析的整体程序 (06:35)& t. |/ J+ w3 ~8 z1 D
5-13 (编程 parse05 java)语法分析整体程序(上)- (17:47)/ G2 H1 M0 P$ k5 B! b5 v4 d
5-14 (编程 parse05 java)语法分析整体程序(下)- (16:43)$ P G5 {! b, n
5-15 (编程 parser05 javascript)语法分析整体程序(上) (26:39)2 F- M! g3 `" L |( T1 y" K: L
5-16 (编程 parser05 javascript)语法分析整体程序(下) (19:28)" y! {% u5 I" b6 |1 {% x- y; X1 F
5-17 拾遗——那些穿插在迭代中的重构 (14:47)' |' }7 `3 p. b/ `% I9 w% z! h
5-18 补课——大批递归来袭之应对 (16:38)% z% n8 i$ @1 R0 @. T3 n" Y j
5-19 词法语法部分总结——领域驱动视角 (06:44)% b3 e/ f0 C8 C' D
5-20 【讨论题】领域驱动开发和元编程的关系9 r4 }+ X3 h0 t7 r" { V
第6章 【 编译原理】语法制导翻译(实现中间语言翻译器)
! h( u9 s& ]4 C: t6 k* [! p6-1 综合部分序章——三地址代码 (10:47)3 `& R/ i7 o2 f P
6-2 构造三地址代码——基于SDD的翻译 (10:39)
& K- R% |4 G1 D0 \! {! M6-3 词法作用域和符号表 (12:56)! d0 P$ f: A; Q# R3 @
6-4 (编程trans 01 java) 实现符号表 (22:44)- Z/ w* a$ _6 j0 j/ W
6-5 (编程trans 01 javascript) 实现符号表 (16:23)
A) R( ~5 ~9 _. C; U$ |6-6 三地址代码的表示 (03:13)
# \6 q7 c1 G3 B3 x8 r6-7 编程 trans02 java) 三地址代码的表示 (11:25)9 \2 S* O w. q8 w5 N( b1 w
6-8 (编程 trans02 javascript)三地址代码的表示 (13:12): h& C2 k8 U X* I
6-9 翻译的整体过程和表达式 (04:05)5 K* ^9 b7 ]. t
6-10 (编程 trans 03 java)翻译的整体过程和表达式 (13:52)3 L) Z; x! Y8 K9 d* k$ j! k/ X
6-11 (编程 trans 03 javascript)翻译的整体过程和表达式 (12:35)
6 V; }; {1 p+ q% I( J2 N6-12 翻译——作用域的处理 (07:44)
9 z) C+ `5 a* P- S C6 ]- i; P6-13 (编程 trans 04 java)翻译——作用域和整体程序 (22:43)
1 B. Q y1 ~3 V% a6 J6-14 (编程 trans 04 javascript)翻译——作用域和整体程序 (29:11)
_1 f# v1 ~) [- p" l第7章 【 编译原理】程序运行环境(实现一个虚拟机)
o0 h/ e3 R& B* D; R7-1 冲刺——用虚拟机执行TinyScript程序 (15:38)
D2 w, S8 A( \) E7-2 (编程 java vm 01)指令和程序表示 (12:02)4 E" J5 i0 F# h# f" ^
7-3 生成器——将三地址代码转化成指令 (12:42)1 D3 f2 v2 l# q' R( J6 M2 v; H
7-4 (编程 java vm 02)指令翻译过程讲解 (11:28)
; m; M( u1 |; R- `# ]1 `2 G$ V' m7-5 (编程 java vm 02)补课——神奇的位运算 (08:33)+ P6 I0 C' E, w* _( i& R8 C6 J
7-6 (编程 java vm 03)虚拟机—— 指令的编码和解码 (16:22)
' i* ~ {/ L- P3 @4 R% H9 u7-7 (编程 java vm 04)虚拟机执行程序 (15:32)6 n% u) Y' e' |
7-8 【讨论题】我要写语言怎么办?有没有编译器生成工具?
( N1 C- T) z( @) d) N% t' { n4 J1 X7-9 课程总结——如何做一个优秀的架构师 (08:46)
8 }3 r1 S ?( P4 ~第8章 【 操作系统】概述(历史和核心概念)" R: I4 H7 @9 M) e+ y+ C' T8 J
8-1 课前导学——学好操作系统要注意什么 (05:13)
! t, a% o2 m: \: ?# k" H8-2 什么是操作系统 (10:48)
" }9 R- [5 Z0 l8-3 操作系统的历史 (17:46)
& s! J* W+ I. n9 b8 p8-4 内核和内核设计 (15:22)
9 R6 L' {0 N7 D1 Z! H- a7 R, _7 y: _第9章 【 操作系统】进程和多线程(多线程算法全解和实战高并发)# M6 @1 K0 a7 m2 R3 x
9-1 应用程序的抽象——进程 (14:33)
3 G- m) ~% {; |- Z! G9-2 进程的三态和中断响应 (09:25): f+ }4 v3 ?& I9 ?% l8 k
9-3 多道程序设计和CPU利用率 (05:24)
3 \$ ?# J! M& W- E9-4 线程——轻量级的进程 (10:05)
1 \! m) {1 h1 T$ l9-5 竞争条件和临界区 (05:02)1 F1 C& E3 l2 C! E4 K; G5 g* S
9-6 解决竞争条件的算法——严格轮换法和Peterson算法 (10:11)
* O# g6 M; M" K, e+ e+ r9-7 锁的基础——硬件TSL和XCHG (06:46)
. F- c0 @ b; w( S! h6 ~" l. e4 @9-8 信号量(Semaphore)和互斥量(Mutex) (16:19)
7 i ^, L* A0 X- p" w5 K$ k: X9-9 总结——万变不离其宗(1) (07:14)
! R# \) `& S& x* X9-10 【讨论题】高并发领域应该开几个线程?
, \! d" n6 \2 ^% W J* e; _' v第10章 【 操作系统】调度算法入门(理解任务调度的模型)
' y$ u8 S/ A0 r10-1 调度问题概述 (11:51); P* [$ s0 k7 h4 X2 k
10-2 补课——优先级队列 (09:40)
- h# U" Y* p0 [8 i& a6 |! j10-3 调度算法选讲 (05:26)
- j; a9 C! w5 j" `10-4 实战哲学家就餐问题 (13:25)
) S0 [1 B/ ^+ y5 V6 N, \/ G" @: I第11章 【操作系统】内存管理(内存分配回收全面解答)
, U; |4 f0 u6 C7 m! G- V* ]11-1 内存部分导学 (12:54)4 c+ d( D0 Y5 ^8 x& }
11-2 地址空间——存储器模型的抽象 (16:14); V, E7 W, F2 g
11-3 虚拟内存、页表和mmu (21:10)% y- a1 ]0 X9 e$ R- i
11-4 java,go和js为什么这么玩——理解OS和语言对内存管理的异同 (21:07)
$ x& f7 c5 P0 V, ]11-5 垃圾回收算法选讲——基于引用计数的内存回收算法 (11:48)
2 q! W s0 r1 J- F: q) U2 w11-6 垃圾回收算法选讲——标记、扫地、整理 (13:37)% a3 K' v! @, z
11-7 垃圾回收算法选将——分代算法 (08:02)
* R) Q) P8 j1 n/ p第12章 【 操作系统】文件系统(底层数据结构设计与抽象)5 I* I7 E; N& F; _' Z
12-1 文件系统和磁盘 (15:38)
( |: n7 C6 s0 k4 q" T12-2 文件和文件的表示 (18:10)9 ~; }0 J! W" p. N3 G6 l8 g
12-3 共享文件和目录 (11:48)
7 R* _7 \. `, Q3 f, f1 Z9 I6 y12-4 虚拟文件系统(VFS)和基于日志的文件系统 (08:01)
8 z2 @8 \ N' \/ _. ]: n: i0 w12-5 【讨论题】日志文件系统数据格式是怎样的?
% |' o3 ?. i+ `. J12-6 场景思考100W并发——epoll,select和poll (15:43)
8 |; S' x: X. i4 B$ C第13章 【图形学】概要(小白学图形学第一步), ]% h/ m9 N0 J' Z- v
13-1 图形学部分导学 (10:36)1 m% y2 K2 W4 U, H4 k
13-2 图形学的基本概念和应用场景 (06:35)
7 V$ A1 u4 s( h# a; K13-3 图形学历史概述 (21:18)
J8 J: } y: I7 K5 B13-4 向量的世界 (13:20)3 h7 M4 i* J* e5 K1 |% ]0 l
13-5 圆的世界 (17:26)
' ?7 }5 z2 {) u- R5 L: n/ K! J13-6 向量的点乘和叉乘 (18:33)0 R/ m' w) s/ Z: E
13-7 矩阵的乘法(1) (16:36)& d( I5 l4 r; f* T( ^# z/ W5 w
13-8 三角形网格(1) (06:31)
r* U- A- d( w; W! \, T1 I13-9 渲染图形——从顶点到视区(1) (08:24)
! } L$ h. ~- A9 K c0 d第14章 【图形学】 图形渲染流程和WebGL初探(从helloworld逐渐深入)$ O E& h6 p# Z5 F0 ?
14-1 webgl的第一个程序(上) (20:30)
) h* l- p3 d/ g. U9 |$ B14-2 webgl的第一个程序(下) (24:15)' H5 a" ~3 t ^
14-3 WebGL图形渲染管道 (12:36)) O5 k4 v7 |- m
14-4 传递数据给GLSL——Buffer管理 (23:07)
# {$ i! J0 E% r/ n+ J14-5 绘制3d图形——旋转的立方体 (20:01)
1 u8 Z( U# O1 k6 w# @! O$ k$ [14-6 2d变换和实战(上) (17:14)2 |( S8 Y: X& H( g2 D. u
14-7 2d变换和实战(下) (16:28)9 z. W- q; l0 i
14-8 3d观察——投影和透视 (28:25)
" L) N/ d7 q2 d, i( G9 F14-9 简单三维变换和模型的封装.mp4 (21:42)$ L* o+ N1 N5 V$ P w2 m" S$ J
14-10 3D观察——眼睛和摄像头 (09:22)
3 i9 i; ], _; G' }- m第15章 【图形学】GLSL(多例子教你用着色器)
' }1 h3 m% A- A, z6 V15-1 GLSL基础语法 (08:40)
9 H5 k* }, i+ v. w9 f( |2 O15-2 纹理入门——给图形增加纹理 (20:06) i, B2 S0 J7 c' m7 W4 g8 e
15-3 手把手制作球面贴图——地球仪和笑脸 (15:14)6 t! G# O5 Q5 z* V2 u
15-4 制作一个游戏角色(上)——模型组合 (17:13)
6 R+ v) ?( ~% `6 w1 n l8 P( q15-5 制作一个游戏角色(中)—— 多纹理的原理和处理 (08:33)5 Q# S+ U, u& D8 H7 o h
15-6 制作一个游戏角色(下)—— 实现动画 (10:54)
$ g% a B+ Q* a, e0 L. n0 Z2 H( Z第16章 【图形学】光照和光线追踪(理解世界最核心的——光)
1 F7 x3 q8 `3 j! ?; ?16-1 光照部分导学 (07:33)+ s9 h+ ]- {7 [$ [: y
16-2 为模型增加直线光源 (18:20)
2 G, F& G/ L4 ^+ S16-3 点光源 (13:22)
" p9 E! L) q C2 U3 e16-4 制作手电筒效果 (11:32)
- K Z6 c/ y( X5 Z9 \: {16-5 光线追踪介绍 (11:46)# k9 }9 u/ `) D0 s/ ?4 i9 r$ {
第17章 【图形学】游戏开发(一起实现一个射击类的3D游戏)
- Y# P+ s4 z( m' z+ ^3 u17-1 游戏开发部分导学 (16:45)- ?" ?3 q+ p! ^; W0 ?4 p4 `5 q; W
17-2 构造游戏地图——2.5D网格和基础架构 (15:54)( t% a2 x: E+ ^. Z j
17-3 为角色创建AI——Agent设计模式 (09:22)1 v1 F6 a, j' u, ?0 y/ q! ~* P T
17-4 多个GLSL之间切换和Framebuffer (14:05)2 i. }: N" Q/ c7 V- [
17-5 用户交互——选择3D模型 (17:15)) L R7 K, ^" ]( I5 ^# M; ~
17-6 多状态切换——战斗效果 (07:43)
6 U$ w* o9 {( F7 S17-7 图形学总结和后续学习建议 (10:12)
" y) h1 k( `# r# i! d
% A* ~. B; K: O# v1 [程序源码论坛:程序员的新大陆-更新更快的IT资源社区!开发者必备平台!/ z% |/ |# ?4 O; u2 G- D( I% o
$ [* x3 O9 u, n' k% W
- e1 y9 n1 c/ F/ E! u3 Q7 V; I4 ~3 O: j7 O4 B( z3 i8 Y
7 A/ `& g; Z- l% k) y4 x d! [$ E( ~& m9 }% f6 _
|