所以我知道Kotlin Native显然是Native,Kotlin JVM不是,但是Kotlin JVM和Kotlin Native之间的代码:1。不同的编译器和不同的代码2.不同的编译器和相似的代码3.不同的编译器和相同的代码4.没有以上(请解释)
Kotlin / JVM和Kotlin / Native编译器共享前端(执行代码解析,名称解析,类型推断等的部分),但编译器后端将内部程序表示转换为目标代码(JVM)字节码和LLVM bitcode分别是不同的。
两个编译器接受的Kotlin语言是相同的,但某些功能和检查是特定于平台的。此外,Kotlin / JVM和Kotlin / Native的标准库完全不同,请参阅每个平台上提供的API:Kotlin Standard Library。
另一个很大的区别是内存模型:Kotlin / JVM使用Java内存模型,而Kotlin / Native提供its own concurrency and memory model。