CodeBlanks Logo Icon CodeBlanks

Özet - Derleyici iç yapıları

pipeline, AST ve Kernel'i birleştirerek bir derleyici özeti yazarsın.

Özet: Derleyici iç yapıları

Bu grupta Dart derleyicisinin iç yapılarını gördük: compilation pipeline kaynak kodu aşamalardan geçirir, AST kodun anlamsal ağacıdır, Kernel platformdan bağımsız ara biçimdir.

Code generation Kernel'ı hedef koda dönüştürür, dartaotruntime ise AOT derlenmiş programları çalıştırır. Bu özette tüm bu kavramları birleştiren bir sınıf yazacaksın.

Uygulama Özet: CompilationStep sınıfı

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

Başlangıç kodu

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

Örnek çözüm

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

void main() {
  final s = CompilationStep('AST', 'Kernel');
  print(s.describe());
}

Beklenen çıktı

AST → Kernel

Soru ve cevaplar

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

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

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

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

2 Derleyici parçalarını eşleştir

Kavram Anlamı
Pipeline Aşama akışı
AST Anlamsal ağaç
Kernel Ara biçim
Backend Kod üretimi

3 Backend adı

Soru
final backend = '____';
print(backend);
Cevap
final backend = 'dart2js';
print(backend);

Açıklama: dart2js JavaScript üreten backend'tir.

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