Türkçe | English
MÜHENDİSLİK FAKÜLTESİ / İNŞAAT MÜHENDİSLİĞİ BÖLÜMÜ
( I. ÖĞRETİM)
Ders Bilgi Paketi
https://www.ktu.edu.tr/insaat
Tel: +90 0462 0 (462) 377 26 06
MF
MÜHENDİSLİK FAKÜLTESİ / İNŞAAT MÜHENDİSLİĞİ BÖLÜMÜ / ( I. ÖĞRETİM)
Katalog Ana Sayfa
  Katalog Ana Sayfa  KTÜ Ana Sayfa   Katalog Ana Sayfa
 
 

BHS 306Derleyici Tasarım2+0+0AKTS:4
Yıl / YarıyılBahar Dönemi
Ders DuzeyiLisans
Yazılım Şekli Seçmeli
BölümüYAZILIM MÜHENDİSLİĞİ BÖLÜMÜ
Ön KoşulYok
Eğitim SistemiYüz yüze , Laboratuar Çalışması
Dersin Süresi14 hafta - haftada 2 saat teorik
Öğretim Üyesi--
Diğer Öğretim Üyesi
Öğretim DiliTürkçe
StajYok
 
Dersin Amacı:
Kelimesel analiz, aşağıya ve yukarıya doğru ayrıştırma, soyut sözdizim ağaçları, tip denetimi, arakod dönüşümü, temel bloklar ve kod üretimi gibi çeşitli derleme süreci aşamalarını anlatmayı ve bu derleme aşamalarının Java programlama dilinde kaynak kod üretebilen JavaCC ve JTB gibi derleyici-derleyici araçları ile nasıl gerçeklenebildiğini öğretmektir.
 
Öğrenim KazanımlarıBPKKÖY
Bu dersi başarı ile tamamlayan öğrenciler :
ÖK - 1 : derleme süreci aşamaları kavrayabilir.1,2,121
ÖK - 2 : programlama dili yapıları için sonlu otomata ve gramerler yazabilir.2,121
ÖK - 3 : basit bir programlama dili için a tarayıcı, ayrıştırıcı, ve tip kontrolörü yazabilir.121
ÖK - 4 : basit programlama dili yorumlayıcıları geliştirebilir.1,2,41
ÖK - 5 : basit bir programlama dili için ara kod üretebilir.1
ÖK - 6 : yeni programlama dilleri tasarlayabilir ve gerçekleyebilir.1,2,121
ÖK - 7 : derleyici tekniklerini girdi okuyan ve eylem gerçekleştiren tipik yazılım mühendisliği görevlerine uygulayabilir.2,3,41
BPKK :Bölüm program kazanımlarına katkı, ÖY : Ölçme ve değerlendirme yöntemi (1: Yazılı Sınav, 2: Sözlü Sınav, 3: Ev Ödevi, 4: Laboratuvar Çalışması/Sınavı, 5: Seminer / Sunum, 6: Dönem Ödevi / Proje),ÖK : Öğrenim Kazanımı
 
Ders İçeriği
Kelimesel analiz: Kelimesel token'lar, düzenli ifadeler, sonlu otomata, kelimesel çözümleyici üreticileri. Ayrıştırma: Bağlamla ilintisiz gramerler, öngörücü ayrıştırma, LR ayrıştırma, ayrıştırıcı üreteçleri. Soyut sözdizimi: Anlambilimsel eylemler, soyut ayrıştırma ağaçları, ziyaretçiler. Anlambilimsel analiz: Sembol tabloları, tip denetimi. Aktivasyon kayıtları: Yığın çatıları, MiniJava derleyicisinde çatılar. Arakoda dönüşüm: Arakod gösterim ağaçları, ağaçlara dönüşüm, bildirim. Temel bloklar ve icra yolları: Doğal ağaçlar, koşullu dallanma çıkarımı. Emir seçimi: Emir seçim algoritmaları, CISC makineleri, MiniJava derleyicisi için emir seçimi. Canlılık analizi: Veri akış denklemlerinin çözümü, MiniJava derleyicisinde canlılık. Kaydedici tahsisi: Sadeleştirme ile renklendirme, ergitme, önrenkli düğümler, graf renklendirme, ağaçlar için kaydedici tahsisi. Kod üretimi: Bütün modülleri birleştirme.
 
Haftalık Detaylı Ders İçeriği
 HaftaDetaylı İçerikÖnerilen Kaynak
 Hafta 1Çeviricilere Giriş
 Hafta 2Kelimesel Analiz
 Hafta 3Sözdizim Analizi (Ayrıştırma)
 Hafta 4Soyut Sözdizimi
 Hafta 5Anlambilimsel Analiz
 Hafta 6Aktivasyon Kayıtları
 Hafta 7Ara Kod Dönüşümü
 Hafta 8Temel Bloklar ve İcra Yolları
 Hafta 9Arasınav
 Hafta 10Emir Seçimi
 Hafta 11Canlılık Analizi
 Hafta 12Kaydedici Tahsisi
 Hafta 13Kod Üretimi
 Hafta 14Veri Akış Analizi
 Hafta 15Döngü Optimizasyonu
 Hafta 16Dönem sonu sınavı
 
Ders Kitabı / Malzemesi
1Appel, A. W., 2002; Modern Compiler Implementation in Java, 2nd ed., Cambridge University Press, 501 p.
 
İlave Kaynak
1Cooper, K., Torczon, L. 2003; Engineering a Compiler, 1st ed., Morgan Kaufmann, 801 p.
2Grune, D., Bal, H., Jacobs, C., Langendoen, K. 2000; Modern Compiler Design, Wiley, 736 p.
 
Ölçme Yöntemi
YöntemHaftaTarih

Süre (Saat)Katkı (%)
Arasınav 9 2 50
Dönem sonu sınavı 16 2 50
 
Öğrenci Çalışma Yükü
İşlem adıHaftalık süre (saat)

Hafta sayısı

Dönem toplamı
Yüz yüze eğitim 2 14 28
Sınıf dışı çalışma 1 14 14
Arasınav için hazırlık 1 8 8
Arasınav 2 1 2
Ödev 2 10 20
Dönem sonu sınavı için hazırlık 2 4 8
Dönem sonu sınavı 2 1 2
Toplam Çalışma Yükü82