CodeBlanks Logo Icon CodeBlanks

Konan

Konan derleyicisini öğrenirsin.

Konan nedir?

Konan, Kotlin/Native derleyicisinin adıdır. Kotlin kaynağını LLVM IR'ye çevirir; LLVM de bunu yerel makine koduna derler.

Konan, LLVM araç zincirini kullanır; her hedef için ayrı bir araç zinciri gerekir. Çalışma sırasında birkaç LLVM geçişi (pass) uygular; bunlar boyut ve hız eniyilemesi yapar. konan.home dizini altında araç zincirleri bulunur. Gradle, kotlin-native plugin'i ile Konan'ı otomatik çağırır; sen elle komut vermezsin. Eski ad Konan'dı; şimdi genellikle "Kotlin/Native compiler" denir ama araç hâlâ Konan olarak bilinir.

Konan araç zinciri

Konan, her hedef için bir araç zinciri (toolchain) kullanır. Bu zincirler LLVM ve hedefe özgü başlık dosyalarını içerir.

Örnek: iosArm64 hedefi için iOS SDK gereklidir; linuxX64 için Linux başlık dosyaları. Konan, gerekli araç zincirini ~/.konan altına indirir. Bir proje derlendiğinde Konan, doğru araç zincirini seçer ve LLVM'i çağırır. Bu adım geliştiriciye şeffaftır; Gradle üstünden yürür. İlk derleme biraz zaman alır çünkü araç zincirleri indirilir; sonraki derlemeler hızlanır.

Uygulama Konan info yaz

object Konan tanımla. val version: String = "2.0" özelliği ve fun info(): String metodu olsun; bu da "Konan ${'$'}version" döndürsün. main içinde println(Konan.info()) yaz.

Başlangıç kodu

Main.kt
// Konan nesnesini ekle

fun main() {
    // Konan.info() sonucunu yazdır
}

Örnek çözüm

Main.kt
object Konan {
    val version: String = "2.0"
    fun info(): String = "Konan $version"
}
fun main() {
    println(Konan.info())
}

Beklenen çıktı

Konan 2.0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Konan ne üretir?

  • JVM bytecode
  • JSON dosyası
  • JavaScript
  • LLVM IR Doğru cevap

Açıklama: Konan Kotlin kaynağını LLVM IR'ye çevirir; LLVM makine kodu üretir.

2 Konan info'yu tamamla

Soru
object Konan {
    val version: String = "2.0"
    fun info(): String = "Konan ${'$'}____"
}
Cevap
object Konan {
    val version: String = "2.0"
    fun info(): String = "Konan ${'$'}version"
}

Açıklama: ${'$'}version ile sürüm dizeye gömülür.

3 Konan parçalarını eşle

Kavram Anlamı
Konan Kotlin/Native derleyicisi
LLVM Makine kodu üretici
~/.konan Araç zinciri dizini
kotlin-native plugin Gradle eklentisi

Uzman bölümündeki tüm dersler