首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
Rust 编译器与运行时揭秘
杨艺韬
创建于2026-04-16
订阅专栏
Rust 编译器与运行时揭秘
等 5 人订阅
共19篇文章
创建于2026-04-16
订阅专栏
默认顺序
默认顺序
最早发布
最新发布
Rust编译器原理-第17章 增量编译:让重编译只做必要的事
第17章 增量编译:让重编译只做必要的事 :::tip 本章要点 Rust 编译器不是流水线,而是一个按需查询数据库——每个编译操作都被建模为一个 Query 依赖图(Dependency Graph
Rust编译器原理-前言
前言 写作动机 每一个 Rust 开发者都经历过这样的时刻:编译器报了一个 lifetime 错误,你盯着那几行代码看了十分钟,试了各种写法,终于编译通过了——但你不知道为什么。 你学会了"和编译器搏
Rust编译器原理-第4章 生命周期:编译器如何推断引用的有效范围
第4章 生命周期:编译器如何推断引用的有效范围 生命周期(Lifetime)是 Rust 类型系统中最独特的概念。在编译器内部,它是 MIR 控制流图中一组程序点的集合——编译器用来证明引用有效性的数
Rust编译器原理-第7章 Trait 静态分发:零成本抽象的编译器实现
第7章 Trait 静态分发:零成本抽象的编译器实现 :::tip 本章要点 静态分发的本质:编译器在编译期将 trait 方法调用解析为确定的函数地址,运行时零间接跳转 Trait 选择算法:Sel
Rust编译器原理-第1章 编译管线全景:从源码到机器码的完整旅程
第1章 编译管线全景:从源码到机器码的完整旅程 :::tip 本章要点 Rust 编译器不是一条线性流水线,而是一个基于查询的按需驱动系统 从源码到机器码,数据流经十个关键阶段:源码 → Token
Rust编译器原理-第3章 借用检查器:编译器如何证明内存安全
第3章 借用检查器:编译器如何证明内存安全 :::tip 本章要点 Rust 的两条借用规则如何在编译期消除数据竞争、悬垂指针和 use-after-free 借用检查运行在 MIR(中层中间表示)之
Rust编译器原理-第15章 MIR 优化:编译器的中间表示与优化管线
第15章 MIR 优化:编译器的中间表示与优化管线 :::tip 本章要点 MIR(Mid-level Intermediate Representation) 是 Rust 编译器在 HIR 与 L
Rust编译器原理-第10章 Pin、Waker 与 Future:异步运行时的三大支柱
第10章 Pin、Waker 与 Future:异步运行时的三大支柱 :::tip 本章要点 自引用问题:async 状态机跨越 await 点后,某些状态包含指向自身其他字段的指针,移动会制造悬垂指
Rust编译器原理-第18章 设计哲学与架构决策
第18章 设计哲学与架构决策 :::tip 本章要点 零成本抽象在编译器层面意味着什么:从单态化到内联再到 Drop 的编译期插入 所有权模型本质上是一个编译期垃圾回收器:与 Java GC、Go G
Rust编译器原理-第8章 Trait Object 与虚表:运行时多态的内存布局
第8章 Trait Object 与虚表:运行时多态的内存布局 Rust 是一门以零成本抽象著称的语言,泛型和 trait 的组合让大部分多态在编译期通过单态化(monomorphization)解决
Rust编译器原理-第14章 宏系统:编译期的元编程引擎
第14章 宏系统:编译期的元编程引擎 :::tip 本章要点 Rust 有两套宏系统:声明宏(macro_rules!)和过程宏(proc_macro),它们在编译器内部走完全不同的路径 宏展开发生在
Rust编译器原理-第5章 内存布局:编译器如何排列数据
第5章 内存布局:编译器如何排列数据 每一个 Rust 值在运行时都是一段连续的字节。编译器必须决定每个字段放在哪个偏移量、整体占多少空间、按多少字节对齐。本章将走进 rustc_abi 的源码,揭示
Rust编译器原理-第6章 单态化:泛型的编译期展开
第6章 单态化:泛型的编译期展开 :::tip 本章要点 单态化(Monomorphization)是 Rust 编译器将泛型代码为每个具体类型生成独立副本的核心机制 rustc 中的单态化围绕 In
Rust编译器原理-第9章 async/await:状态机的编译器变换
第9章 async/await:状态机的编译器变换 :::tip 本章要点 async fn 经历三个编译阶段:HIR 脱糖(.await → loop + yield)、MIR 生成(yield →
Rust编译器原理-第11章 闭包:匿名函数的编译器实现
第11章 闭包:匿名函数的编译器实现 :::tip 本章要点 每个闭包都会被编译器转化为一个唯一的匿名 struct,捕获的变量就是 struct 的字段 三种捕获模式:不可变引用(&T)、可变引用(
Rust编译器原理-第12章 unsafe:安全抽象的逃生舱
第12章 unsafe:安全抽象的逃生舱 Rust 的安全模型是编程语言设计史上最激进的实验之一:它试图在编译期证明程序不会出现内存错误。但任何静态分析都有其极限——当你需要直接操作硬件、调用外部 C
Rust编译器原理-第2章 所有权系统:编译期内存管理的核心机制
第2章 所有权系统:编译期内存管理的核心机制 :::tip 本章要点 所有权模型的核心:每个值有且仅有一个所有者,所有权可以转移(move),所有者离开作用域时值被销毁 Move 在 MIR 中表现为
Rust编译器原理-第16章 LLVM 代码生成:从 MIR 到机器码
第16章 LLVM 代码生成:从 MIR 到机器码 :::tip 本章要点 Rust 的代码生成采用双层架构:rustc_codegen_ssa(后端无关抽象层)+ rustc_codegen_llv
Rust编译器原理-第13章 FFI:与 C 世界的桥梁
第13章 FFI:与 C 世界的桥梁 :::tip 本章要点 extern "C" 告诉编译器使用 C ABI 调用约定:参数通过特定寄存器和栈传递,遵循平台标准 repr(C) 保证 struct