Konan
- Kotlin kursu
- Uzman
- Ders 22/47
- 5 dk
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
// Konan nesnesini ekle
fun main() {
// Konan.info() sonucunu yazdır
}Örnek çözüm
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
object Konan {
val version: String = "2.0"
fun info(): String = "Konan ${'$'}____"
}
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 |