CodeBlanks Logo Icon CodeBlanks

Kernel

Dart Kernel ara gösterimini (IR) öğrenirsin.

Kernel

Kernel, Dart'ın platformdan bağımsız ara biçimidir (intermediate representation, IR). AST'den üretilir ve .dill dosyası olarak serialize edilebilir. Kernel, tüm backend'lerin ortak girdisidir.

Kernel binary biçimdedir; bu nedenle yüklemesi hızlıdır. Kernel, dilin semantiğini tam temsil eder: türler, genericler, nullability, metaveriler. Bir Kernel dosyası yüklendiğinde backend yalnızca kod üretimini yapar; tekrar parse/tür denetimi gerekmez.

Binary biçim avantajı

Kernel binary biçimde olduğundan, metin tabanlı kaynak koddan çok daha hızlı yüklenir. Bu, özellikle büyük projelerde ve incremental derlemede önemlidir. dart run komutu önbelleğe alınmış .dill dosyalarını kullanır.

Ayrıca Kernel, dilin doğrulanmış biçimidir: tür denetimi yapılmış, semantic analiz tamamlanmıştır. Backend'ler bu doğrulanmış biçimi alır ve yalnızca kod üretimine odaklanır. Bu, derleme süresini azaltır.

Uygulama KernelModule sınıfı

Bir KernelModule sınıfı tanımla: final String name; final bool verified; KernelModule(this.name, this.verified); alan ve kurucu. String status() => verified ? 'verified' : 'pending'; metodu. main içinde final m = KernelModule('myapp', true); yarat; print(m.status()); ile yazdır.

Başlangıç kodu

main.dart
void main() {
  // KernelModule sınıfını tanımla (name, verified; status metodu)
  // bir KernelModule yarat; status() yazdır
}

Örnek çözüm

main.dart
class KernelModule {
  final String name;
  final bool verified;
  KernelModule(this.name, this.verified);
  String status() => verified ? 'verified' : 'pending';
}

void main() {
  final m = KernelModule('myapp', true);
  print(m.status());
}

Beklenen çıktı

verified

Soru ve cevaplar

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

1 Kernel parçalarını eşleştir

Kavram Anlamı
Kernel Ara biçim (IR)
.dill Binary dosya
AST Önceki aşama
Backend Sonraki aşama

2 Kernel hangi amaçla kullanılır?

  • Yalnızca belge üretmek için
  • Platformdan bağımsız ara biçim (IR) olarak Doğru cevap
  • Çöp toplama için
  • UI render için

Açıklama: Kernel platformdan bağımsız ara biçimdir ve tüm backend'lere gider.

3 .dill dosyası

Soru
final kernelFile = '____';
print(kernelFile);
Cevap
final kernelFile = 'myapp.dill';
print(kernelFile);

Açıklama: .dill Kernel'ın binary dosya uzantısıdır.

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