CENG 513

Derleyici Tasarımı ve Gerçekleştirimi

Bu lisansüstü düzeydeki ders, derleyici tasarımının teorik ve pratik kavramlarını sunar. Derste ön uç (scanner ve parser bileşenleri dahil), orta uç optimizasyonları ve arka uçta komut seçimi, kayıt tahsisi ve komut zamanlaması teknikleri ele alınacaktır. Uygulamalı örnekler LLVM çerçevesi (framework) baz alınarak yapılacaktır.

Dersin Amacı

  1. Tarama (scanning) ve ayrıştırma (parsing) tekniklerini anlayabilme.
  2. Yüksek düzey optimizasyonları ve kod dönüşümlerini anlayabilme.
  3. Temel derleyici yapılarını uygulayabilme ve geliştirebilme.
  4. Makineye bağlı optimizasyonları ve düşük düzey yürütme detaylarını anlayabilme.

Kaynakça

– Engineering a Compiler, Keith D. Cooper, Linda Torczon, Morgan Kaufmann.

– LLVM çerçevesi ile uygulamalı örnekler

Öğrenme Çıktıları

Bu dersi tamamladığında öğrenci :

1. Derleyici teorisinin kuramsal temellerini bilir.

2. Derleyicilerin yeteneklerini belirleyici kuramsal sınırları tanır.

3. Yeni nesil derleyicileri tartışabilir.

4.  Derleyici tasarlayıp gerçekleştirebilir.

Konular
Giriş
Sözcüksel Analiz (Lexical Analysis)
Ayrıştırıcı (Parser)
Ayrıştırıcı – Kaleidoscope
Ara Temsil (Intermediate Representation)
LLVM Ara Temsil
Kod Optimizasyonu
Kod Optimizasyonu – LLVM Pass
Ara Sınav
Komut Seçimi
Komut Zamanlaması
Kayıt Tahsisi (Register Allocation)
Makine Öğrenmesi Derleyicileri (ML Compilers)
Makale Sunumları

Notlandırma

20% Ara Sınav – Take Home

20% Programlama Ödevleri

20% Makale Yeniden Uygulama ve Sunum

40% Final Sınavı – Take Home