Kernel
- Dart kursu
- Uzman
- Ders 9/47
- 5 dk
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
void main() {
// KernelModule sınıfını tanımla (name, verified; status metodu)
// bir KernelModule yarat; status() yazdır
}Örnek çözüm
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ı
final kernelFile = '____';
print(kernelFile);
final kernelFile = 'myapp.dill';
print(kernelFile);
Açıklama: .dill Kernel'ın binary dosya uzantısıdır.