我试图了解 Kotlin 源代码在编译时所经历的过程。该文件指出
当以 JVM 为目标时,Kotlin 生成与 Java 兼容的字节码。当以 JavaScript 为目标时,Kotlin 转译为 ES5.1 并生成与包括 AMD 和 CommonJS 在内的模块系统兼容的代码。当以原生为目标时,Kotlin 将生成特定于平台的代码(通过 LLVM)。
我的理解是,当 Kotlin 以 JVM 为目标时,代码被编译/翻译成字节码,然后 JVM 将其解释(?)成机器码。这会是 JIT(及时)编译的一个例子吗?
当定位 javascript 时,使用了“transpiles”这个词。代码究竟被编译成什么,它在任何步骤中是否被进一步解释或编译?
以本机为目标时,代码是否直接编译为机器码?LLVM 采取了哪些步骤?
最后,这是否意味着 Kotlin 既是编译语言又是解释语言?