В чем разница между Kotlin JVM и Kotlin Native? - PullRequest
1 голос
/ 29 марта 2019

Итак, я знаю, что Kotlin Native, очевидно, является Native, а Kotlin JVM не является, но представляет собой код между Kotlin JVM и Kotlin Native: 1. Разный компилятор и другой код 2. Разный компилятор и аналогичный код 3. Разный компилятор и один и тот же код 4. Ничего из вышеперечисленного (поясните, пожалуйста)

1 Ответ

3 голосов
/ 29 марта 2019

Компиляторы Kotlin / JVM и Kotlin / Native совместно используют внешний интерфейс (часть, которая выполняет синтаксический анализ кода, разрешение имен, вывод типов и т. Д.), Но внутренние компоненты компилятора, которые переводят внутреннее представление программы в целевой код(байт-код JVM и бит-код LLVM соответственно) различаются.

Язык Kotlin, принятый двумя компиляторами, одинаков, но некоторые функции и проверки зависят от платформы.Кроме того, стандартные библиотеки для Kotlin / JVM и Kotlin / Native достаточно разные, см. API, доступные для каждой платформы, здесь: Стандартная библиотека Kotlin .

Еще одно большое отличие - модель памяти:Kotlin / JVM использует модель памяти Java, в то время как Kotlin / Native предлагает свою собственную модель параллелизма и памяти .

...