|
YZM3000 | Derleyici Tasarımı | 2+0+0 | AKTS:4 | Yıl / Yarıyıl | Bahar Dönemi | Ders Duzeyi | Lisans | Yazılım Şekli | Seçmeli | Bölümü | YAZILIM MÜHENDİSLİĞİ BÖLÜMÜ | Ön Koşul | Yok | Eğitim Sistemi | Yüz yüze | Dersin Süresi | 14 hafta - haftada 2 saat teorik | Öğretim Üyesi | Öğr. Gör. Dr Celal ATALAR | Diğer Öğretim Üyesi | | Öğretim Dili | Türkçe | Staj | Yok | | Dersin Amacı: | Kelimesel analiz, aşağıya ve yukarı yönlü ayrıştırma, soyut sözdizim ağaçları, tip denetimi, ara kod 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çeklenebileceğini öğretmektir. |
Öğrenim Kazanımları | PÖKK | ÖY | Bu dersi başarı ile tamamlayan öğrenciler : | | | ÖK - 1 : | Derleme süreci aşamaları kavrayabilme. | 1,3,8 | 1, | ÖK - 2 : | Programlama dili yapıları için sonlu otomata ve gramerler yazabilir. | 1,3,8 | 1, | ÖK - 3 : | Basit bir programlama dili için tarayıcı, ayrıştırıcı, ve tip kontrolörü yazabilir ve çalıştırabilir.. | 1,3,8 | 1, | ÖK - 4 : | Basit programlama dili yorumlayıcıları geliştirebilme. | 1,3,8 | 1, | ÖK - 5 : | Basit bir programlama dili için ara kod üretebilme. | 1,3,8 | 1, | ÖK - 6 : | Yeni bir programlama dili tasarlayabilir ve gerçekleyebilir. | 1,3,8 | 1, | PÖKK :Program öğrenim 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ı | |
1. Derleyici ve Yorumlayıcı, Derleme Aşamaları
2. Basit Düz Bir Programın Ağaç Gösterimi
3. Kelimesel Analiz
4. Düzenli İfadeler ve Tokenların Düzenli İfadelerle Gösterimi
5. Lookahead , Belirsizlikler ve Hata Yakalama
6. Derleyici Derleme, JavaCC Dosya Yapısı, JavaCC ile Tarayıcı Üretimi
7. Sözdizimsel Analiz , Ayrıştırmaya Giriş
8. Context- Free Grammer (CFG), Sağa ve Sola Dayalı Türetim
9. Ayrıştırma Ağacı ve Belirsiz Gramer
10. Recursive-Descent Ayrıştırma
11. First ve Follow Setleri ve Sol Faktörleme
12. LL ve LR Ayrıştırma
13. Anlamsal Analiz, Visitor Paterni, instanceof Operatörü
14. Soyut Sözdizim Ağacı |
|
Haftalık Detaylı Ders Planı | Hafta | Detaylı İçerik | Önerilen Kaynak | Hafta 1 | Derleyici ve Yorumlayıcı, Derleme Aşamaları | | Hafta 2 | Basit Düz Bir Programın Ağaç Gösterimi | | Hafta 3 | Kelimesel Analiz | | Hafta 4 | Düzenli İfadeler ve Tokenların Düzenli İfadelerle Gösterimi | | Hafta 5 | Lookahead , Belirsizlikler ve Hata Yakalama | | Hafta 6 | Derleyici Derleme, JavaCC Dosya Yapısı, JavaCC ile Tarayıcı Üretimi | | Hafta 7 | Sözdizimsel Analiz , Ayrıştırmaya Giriş | | Hafta 8 | Context- Free Grammer (CFG), Sağa ve Sola Dayalı Türetim | | Hafta 9 | Arasınav | | Hafta 10 | Ayrıştırma Ağacı ve Belirsiz Gramer | | Hafta 11 | Recursive-Descent Ayrıştırma | | Hafta 12 | First ve Follow Setleri ve Sol Faktörleme | | Hafta 13 | LL ve LR Ayrıştırma | | Hafta 14 | Anlamsal Analiz, Visitor Paterni, instanceof Operatörü | | Hafta 15 | Soyut Sözdizim Ağacı | | Hafta 16 | Dönem Sonu Sınavı | | |
1 | Appel, A. W., 2002; Modern Compiler Implementation in Java, 2nd ed., Cambridge University Press, 501 p. | | |
1 | Cooper, K., Torczon, L. 2003; Engineering a Compiler, 1st ed., Morgan Kaufmann, 801 p. | | 2 | Grune, 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 | | 1 | 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 | 3 | 12 | 36 | Arasınav için hazırlık | 2 | 8 | 16 | Arasınav | 1 | 1 | 1 | Dönem sonu sınavı için hazırlık | 3 | 8 | 24 | Dönem sonu sınavı | 2 | 1 | 2 | Toplam Çalışma Yükü | | | 107 |
|