CodeBlanks Logo Icon CodeBlanks

Compilation pipeline

Dart compilation pipeline'ını öğrenirsin.

Compilation pipeline

Compilation pipeline, Dart kaynak kodunun makine koduna veya çalıştırılabilir biçime dönüşme aşamalarıdır. Kaynak önce tokenize edilir, sonra parser tarafından AST'ye (soyut sözdizimi ağacı) çevrilir. AST, Kernel denilen ara biçime (IR) derlenir.

Kernel, backend'lere gönderilir: dart2js web için, dart native (AOT) için. Her backend hedef platforma göre kod üretir. Bu akış, aynı kaynak kodun birden çok platforma derlenmesini sağlar. Her aşama bir öncekinin çıktısını tüketir.

Kernel ve backend

Kernel, Dart kodunun platformdan bağımsız ara biçimidir (intermediate representation). .dill dosyası olarak serialize edilebilir. Tüm backend'ler Kernel'ı tüketir; bu sayede frontend bir kez yazılır, birden çok hedef desteklenir.

Backend'ler: dart2js (JavaScript), dart2wasm (WebAssembly), dart native (AOT makine kodu) ve VM (JIT). Her backend kendi kod üretim stratejisini kullanır. Kernel, dilin tek bir 'doğrulanmış' biçimidir.

Uygulama Pipeline phase sınıfı

Bir Phase sınıfı tanımla: final String name; final String output; Phase(this.name, this.output); alan ve kurucu. String describe() => '$name → $output'; metodu. main içinde final p = Phase('Parse', 'AST'); yarat; print(p.describe()); ile yazdır.

Başlangıç kodu

main.dart
void main() {
  // Phase sınıfını tanımla (name, output; describe metodu)
  // bir Phase yarat; describe() yazdır
}

Örnek çözüm

main.dart
class Phase {
  final String name;
  final String output;
  Phase(this.name, this.output);
  String describe() => '$name → $output';
}

void main() {
  final p = Phase('Parse', 'AST');
  print(p.describe());
}

Beklenen çıktı

Parse → AST

Soru ve cevaplar

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

1 Compilation pipeline'ın ana aşamalarından biri nedir?

  • Yalnızca çöp toplama
  • Yalnızca paket indirme
  • Yalnızca UI render
  • AST'ye parse etme Doğru cevap

Açıklama: kaynak kodun AST'ye parse edilmesi pipeline'ın temel aşamalarındandır.

2 Pipeline aşaması

Soru
final phase = '____';
print(phase);
Cevap
final phase = 'kernel';
print(phase);

Açıklama: kernel, AST'den sonra üretilen ara biçimdir.

3 Pipeline aşamalarını eşleştir

Kavram Anlamı
Tokenize Sözcük akımı
Parse AST üretimi
Kernel Ara biçim (IR)
Backend Hedef kod üretimi

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