Türkçe|English  
  KTU Course Catalogue  
Arama Yapmak İstediğiniz Anahtar Kelimeyi Giriniz :       
OF TEKNOLOJİ FAKÜLTESİ / YAZILIM MÜHENDİSLİĞİ / YAZILIM MÜHENDİSLİĞİ
  Genel Bilgiler
  Yönetim
  Amaç ve Öğrenme Çıktıları
  Akademik Personel
  Ders Programı
     1. Yıl
     2. Yıl
     3. Yıl
     4. Yıl
   Öğrenme Çıktıları Matrisi
 
  Doktora Programları
  Yüksek Lisans Programları
  Lisans Programları
  Meslek Yüksek Okulları
 
  Geri
  Ana Sayfa
  KTÜ Ana Sayfa

YZM3000 DERLEYİCİ TASARIMI 2+0+0 ECTS:4
Yıl / Yarıyıl3. Yıl / Bahar Dönemi
Ders DuzeyiLisans
Yazılım ŞekliSeçmeli
BolumuYazılım Mühendisliği Bölümü
Ön KoşulYok
Öğretim SistemiYüz yüze , Grup çalışması
Dersin suresi14 hafta - haftada 2 saat teorik
Öğretim ÜyesiÖĞR. GÖR. Celal ATALAR
Diğer Öğretim Üyesi / Üyeleri
Öğretim Dili Tü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.
 

Öğrenme Çıktıları

BPÇK

ÖY

Bu dersi başarı ile tamamlayan öğrenciler :

ÖÇ - 1 :

derleme süreci aşamaları kavrayabilir.

ÖÇ - 2 :

programlama dili yapıları için sonlu otomata ve gramerler yazabilir.

ÖÇ - 3 :

basit bir programlama dili için a tarayıcı, ayrıştırıcı, ve tip kontrolörü yazabilir.

ÖÇ - 4 :

basit programlama dili yorumlayıcıları geliştirebilir.

ÖÇ - 5 :

basit bir programlama dili için ara kod üretebilir.

ÖÇ - 6 :

yeni programlama dilleri tasarlayabilir ve gerçekleyebilir.

ÖÇ - 7 :

derleyici tekniklerini girdi okuyan ve eylem gerçekleştiren tipik yazılım mühendisliği görevlerine uygulayabilir.

BPÇK : Bölüm program çıktıları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), ÖÇ : Öğrenme Çıktısı

 

Dersin İç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

 Hafta

Detaylı İçerik

Önerilen Kaynak

 Hafta 1

Çeviricilere Giriş

 Hafta 2

Kelimesel Analiz

 Hafta 3

Sözdizim Analizi (Ayrıştırma)

 Hafta 4

Soyut Sözdizimi

 Hafta 5

Anlambilimsel Analiz

 Hafta 6

Aktivasyon Kayıtları

 Hafta 7

Ara Kod Dönüşümü

 Hafta 8

Temel Bloklar ve İcra Yolları

 Hafta 9

Arasınav

 Hafta 10

Emir Seçimi

 Hafta 11

Canlılık Analizi

 Hafta 12

Kaydedici Tahsisi

 Hafta 13

Kod Üretimi

 Hafta 14

Veri Akış Analizi

 Hafta 15

Döngü Optimizasyonu

 Hafta 16

Dö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öntem

Hafta

Tarih

Süre (Saat)

Katkı (%)

Arasınav

9

2

50

Dönem sonu sınavı

16

2

50

 

Öğrenci İş 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 iş yükü

82