BIL 349

Derleyici Tasarımı

Dersin Adı: BIL 349 Derleyici Tasarımı
Dersin Türü Seçmeli
Verildiği Yarıyıl 5
AKTS Kredi Değeri 5
Kredi Değeri 3
Teorik Saati 3
Uygulama Saati 0
Laboratuvar Saati 0
Ön Kosul Dersi Yok
Dersin Dili Türkçe
Öğretim Şekli Örgün Sistem
Dersi Kimler Alabilir lisans
Dersin Öğretim Elemanı Yrd. Doç. Dr. Mir Mohammad Reza ALAVI MILANI
Dersin Öğretim Yönetimi Sözel Anlatım
Önerilen Ders Kitabı 1. Appel, A. W., 2002; Modern Compiler Implementation in Java, 2nd ed., Cambridge University Press, 501 p.
Yardımcı Ders Kitabı 1. Cooper, K., Torczon, L. 2003; Engineering a Compiler, 1st ed., Morgan
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.
Dersin Özeti

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.

Dersin Öğrenim Çıktıları

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.

Ölçme ve Değerlendirme
Yarıyıl içi çalışmalar Sayısı Katkı Payı %
Devam
Laboratuar
Uygulama
Alan Çalışması/Staj
Ödevler
Proje/Sunum/Seminer
Kisa Sinavlar
Ara Sınavlar 1 40
Yılsonu sınavı 1 60
Toplam 100
Haftalara Göre Ders Konuları
Hafta Konular
1. Hafta Çeviricilere Giriş
2. Hafta Kelimesel Analiz
3. Hafta Sözdizim Analizi (Ayrıştırma)
4. Hafta Soyut Sözdizimi
5. Hafta Anlambilimsel Analiz
6. Hafta Aktivasyon Kayıtları
7. Hafta Ara Kod Dönüşümü
8. Hafta Temel Bloklar ve İcra Yolları
9. Hafta Emir Seçimi
10. Hafta Canlılık Analizi
11. Hafta Kaydedici Tahsisi
12. Hafta Kod Üretimi
13. Hafta Veri Akış Analizi
14. Hafta Döngü Optimizasyonu
Program Yeterlilikleri
Dersin Öğrenim Çıktıları ->*
01 02 03 04 05
PY1) PY 01 4 4 4 4 4
PY2) PY 02 5 5 5 5 5
PY3) PY 03 4 4 4 4 4
PY4) PY 04 4 4 4 4 4
PY5) PY 05 5 5 5 5 5
PY6) PY 06 3 4 3 4 4
PY7) PY 07 4 4 4 4 4
PY8) PY 08 2 2 2 2 2
PY9) PY 09 4 4 4 4 4
PY10) PY 10 1 1 1 1 1
PY11) PY 11 1 1 1 1 1
* 01: Çok düşük 02: Düşük 03: Orta 04: Yüksek 05: Çok yüksek
Etkinlikler Sayısı Ön Hazırlık Etkinlik Süresi Toplam İş Yükü
Anlatim 14 2 3 70
Uygulamalı Ders 0 0 0 0
Ödevler 14 0 2 28
Sunum / Seminer hazırlama 0 0 0 0
Sınıf Dışı Ders Çalışma Süresi (Ön Çalışma, pekiştirme, vb) 14 0 1 14
Dönem Ödevi / Proje Hazırlama 0 0 0 0
Uygulama (Lab., Atölye, Arazi, PDÖ) 0 0 0 0
Diğer Bilgi Edinme Çalışmaları 0 0 0 0
Kısa Sınavlar 0 0 0 0
Ara Sınavlar 1 10 13 13
Yari Yılsonu sınavı 1 22 3 25
Toplam İş Yükü (Saat) 150
*Toplam İş Yükü (saat) / Haftalık İş Yükü (30) = Dersin AKTS Kredisi 5
AVRASYA ÜNİVERSİTESİ
Adnan Kahveci Mahallesi Rize Caddesi No:226 Trabzon / TÜRKİYE
Tel : 0462 334 05 50   |   Faks : 0462 334 64 54  |   e-posta : info@avrasya.edu.tr

Nic Turkey Ynternet Hizmetleri