⚡ 编译时 · 运行时
协同设计 · 30章完整目录
📚 全30讲 · 点击跳转
01
基本概念 · 词法/语法/语义分析 · 中间代码 · 优化 · 目标生成 · 解释器区别
02
运行时环境 · 栈/堆/静态区 · 数据表示:基本类型、复合类型、对象模型
03
静态 vs 动态 · 编译时确定 vs 运行时确定 · 虚函数/动态绑定/反射
04
哈希表/树 · 作用域 · 编译时解析 vs 运行时动态查找
05
静态/动态类型 · 类型推导 · 隐式/显式转换 · 编译时检查 · RTTI
06
三地址码 · SSA · 控制流图 · IR对运行时性能的影响
07
目标代码生成 · 寄存器分配 · 栈帧布局 · 调用约定
08
静态/栈/堆分配 · GC协同 · 逃逸分析 · 写屏障
09
异常表生成 · 运行时传播 · 栈展开 · C++/Java/Python对比
10
vtable生成 · 动态分发 · 多重继承布局 · 接口分派
11
模板实例化 · 泛型擦除 · reified generics · 性能权衡
12
编译时内联 · CHA去虚拟化 · 方法内联收益与风险
13
编译时常量计算 · 运行时常量池 · 字符串驻留 · constexpr
14
循环展开/向量化 · profile反馈 · JIT循环检测
15
静态/动态分支预测 · likely/unlikely · PGO
16
JIT原理 · 方法级/跟踪JIT · 分层编译 · JIT与AOT协同
17
AOT场景 · 混合模式(ART/.NET Native) · 预计算
18
元数据生成 · 运行时反射API · 性能开销 · 编译时优化
19
编译时代码生成(protobuf/flatbuffers) · 反射序列化 · 性能对比
20
eval/dlopen/JIT · 编译时注入(AspectJ/宏) · 安全风险
21
FFI声明 · 调用约定适配 · 跨语言类型映射 · JNI/PInvoke
22
锁消除 · 偏向锁/轻量锁 · 内存模型编译时/运行时保证
23
状态机生成(C++20/Python) · 运行时调度 · 栈式vs无栈
24
DWARF/PDB · 运行时符号解析 · 断点与单步协同
25
插桩 · profile收集 · PGO回馈 · 自适应优化
26
边界检查 · canary · CFI · ASLR编译时支持
27
模块依赖分析 · 运行时加载 · 增量缓存 · 热替换
28
DSL编译时展开 · 运行时解释 · 嵌入式DSL优化
29
编译时/运行时断言 · 随机/差分测试 · 回归协同
30
界限模糊(GraalVM/Polyglot) · AI辅助 · 自适应优化 · 硬件协同