此页面提供了 Kotlin 编译器架构、构建系统和主要组件的高级概述。它是理解 Kotlin 编译器及其相关工具内部工作原理的入口点。有关特定编译器组件的详细信息,请参阅其专用页面,例如 编译器前端、编译器中端 和 编译器后端。
Kotlin 编译器遵循三阶段编译流程,旨在支持从单一代码库到多个目标平台(JVM、JavaScript、Native 和 WebAssembly)的编译。
来源
Kotlin 编译器被模块化为几个主要组件
前端:负责解析、语法分析和语义分析。它有两个实现
中端:处理中间表示 (IR),并执行各种转换和优化。
后端:为特定平台生成代码
来源
Kotlin 编译器使用 Gradle 进行构建,并提供复杂的构建配置选项以支持各种开发和测试场景。
Kotlin 代码库与 Gradle 深度集成,并包含
来源
Kotlin 的构建系统通过 Gradle 属性支持众多配置选项
| 属性 | 目的 | 默认 |
|---|---|---|
kotlinLanguageVersion | 控制默认 Kotlin 语言版本 | 2.2 |
defaultSnapshotVersion | 快照的默认版本 | 2.2.255-SNAPSHOT |
kotlin.build.report.output | 控制构建报告 | null |
kotlin.build.postprocessing | 启用/禁用构建后处理 | true |
kotlin.native.enabled | 启用/禁用 Kotlin Native | false |
kotlin.build.useFir | 为项目使用 FIR 编译器 | false |
kotlin.build.use.absolute.paths.in.klib | 在 KLIB 中使用绝对路径 | false |
来源
IR (中间表示) 系统构成了 Kotlin 编译器中端的主干,为所有目标平台的所有语言特性提供通用表示。
来源
FIR (Frontend IR) 是 Kotlin 编译器中现代前端的实现,负责在将 Kotlin 代码转换为通用 IR 之前对其进行解析、分析和验证。
来源
Kotlin Gradle 插件是将 Kotlin 编译集成到 Gradle 构建中的核心组件。它支持多个 Gradle 版本并适应各种编译场景。
来源
Kotlin 编译器从单一代码库针对多个平台。
来源
每个目标平台都遵循类似的编译流程,但具有平台特定的转换和代码生成
| 平台 | IR 转换 | 输出格式 | 运行时 |
|---|---|---|---|
| JVM | JVM 特定优化 | JVM 字节码 | JVM |
| JavaScript | JS 特定优化 | JavaScript 代码 | 浏览器/Node.js |
| 原生 | Native 特定优化 | LLVM IR → Native 二进制文件 | 原生 |
| WebAssembly | Wasm 特定优化 | WebAssembly 二进制文件 | Wasm 运行时 |
来源
Kotlin 编译器构建与各种基础设施组件集成,以支持开发、测试和持续集成。
来源
Kotlin 编译器包含一个全面的测试基础设施,用于验证编译器的所有方面。
来源
Kotlin 构建系统包含用于依赖管理和验证的强大安全措施。
来源
Kotlin 编译器是一个复杂的、模块化的系统,旨在将 Kotlin 代码编译到多个目标平台。其架构由前端(包括 K1 和 FIR 实现)、中间端(基于 IR)和用于不同目标的多个后端组成。构建系统基于 Gradle,具有广泛的配置选项和对各种 Gradle 版本的支持。这种模块化设计允许在保持向后兼容性的同时持续演进编译器。
有关特定组件的更多详细信息,请参阅关于 编译器前端、编译器中间端、编译器后端、测试基础设施 和 Kotlin Gradle 插件 的专门 Wiki 页面。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(dc0dea)