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ı
- Tarama (scanning) ve ayrıştırma (parsing) tekniklerini anlayabilme.
- Yüksek düzey optimizasyonları ve kod dönüşümlerini anlayabilme.
- Temel derleyici yapılarını uygulayabilme ve geliştirebilme.
- 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
Öğretim Elemanı
- CENG 501
- CENG 502
- CENG 503
- CENG 504
- CENG 505
- CENG 506
- CENG 507
- CENG 508
- CENG 509
- CENG 511
- CENG 512
- CENG 514
- CENG 515
- CENG 516
- CENG 517
- CENG 518
- CENG 521
- CENG 522
- CENG 523
- CENG 524
- CENG 525
- CENG 531
- CENG 532
- CENG 533
- CENG 534
- CENG 541
- CENG 542
- CENG 543
- CENG 544
- CENG 551
- CENG 552
- CENG 555
- CENG 556
- CENG 557
- CENG 561
- CENG 562
- CENG 563
- CENG 564
- CENG 565
- CENG 566
- CENG 600
- CENG 608
- CENG 611
- CENG 612
- CENG 613
- CENG 631
- CENG 632
- CENG 641
- CENG 642
- CENG 643
- CENG 651
- CENG 661
- CENG 662
- CENG 663
- CENG 690