Dersin Adı | Kodu | Yarıyıl | T+U+L (saat/hafta) | Türü (Z / S) | Yerel Kredi | AKTS |
---|---|---|---|---|---|---|
Derleyici Tasarımı | CE 473 | Bahar | 03+00+00 | Zorunlu | 3 | 8 |
Akademik Birim: | Bilgisayar Mühendisliği Bölümü |
Öğrenim Türü: | Örgün Eğitim |
Ön Koşullar | Yazılım Mühendisliği, Nesneye Yönelik Programlama, Veri Yapıları, Kurallı/Düzenli İfadeler, Sonlu Durum Otomatı (Deterministik Sonlu Durum Otomatı ve Deterministik Olmayan Sonlu Durum Otomatı), Backus–Naur Form kuralları |
Öğrenim Dili: | İngilizce |
Dersin Düzeyi: | Lisans |
Dersin Koordinatörü: | Tamer DAĞ |
Dersin Amacı: | Bu ders öğrencilere derleyici düzenleme ve gerçekleştirme (biçimsel belirtim, sözcüksel ve sözdizimsel analiz algoritmaları dahil olmak üzere), kaynak programın içsel gösterimi, semantik analiz, çalışma zamanı çevresi meseleleri ve kod üretimi öğretmeyi amaçlar. Öğrenciler çağdaş bir dilin büyükçe bir alt kümesi için, sanal bir makinayı hedef alan, bir derleyici yazacaklar. |
Dersin İçeriği: | Derleme aşamaları, sözcüksel analiz, ayrıştırma, tür denetleme, JVM kodu üretme, ünlü Java derleyicilerini inceleme ve modern derleyici konuları. |
Dersin Öğrenme Çıktıları (ÖÇ): |
|
Dersin Öğrenme Yöntem ve Teknikleri | Sınıf anlatımı |
Hafta | Konular | Ön Hazırlık | ÖÇ |
---|---|---|---|
1 | Giriş: derleyicilere karşı yorumlayıcılar, derleyici yapısı. | 1,2 | |
2 | Java Virtual Machine ve çalışma zamanı çevresi. | 1,2 | |
3 | j—derleyicisi haritası | 1,2 | |
4 | Sözcüksel çözümleme. Düzenli deyimler, sonlu durum otomatı ve deterministik sonlu durum otomatı. | 1,3 | |
5 | İçerikten Bağımsız Gramer ve ayrıştırma. | 1 | |
6 | Yukarıdan-aşağı ayrıştırma. Özyinelemeli ayrıştırıcılar. | 1,3 | |
7 | Ayrıştırıcı üretici kullanma. JavaCC | 1,3 | |
8 | Ara sınav için tekrar | ||
9 | Ara sınav | ||
10 | Semantik çözümleme. | 2,3 | |
11 | JVM Kodu üretimi. | 2,3 | |
12 | Optimizasyona giriş | 2 | |
13 | Meşhur Derleyiciler | 1,2 | |
14 | Final sınavı için tekrar |
Bill Campbell, Swami Iyer, and Bahar Akbal-Delibaş. Introduction to Compiler Construction in a Java World. Chapman and Hall/CRC Press, 2013. ISBN 1439860882 |
The Java Language Specification: https://docs.oracle.com/javase/specs/jls/se16/html/index.html The Java Virtual Machine Specification: https://docs.oracle.com/javase/specs/jvms/se16/html/index.html Java 16 API: https://docs.oracle.com/en/java/javase/16/docs/api/index.html JavaCC: The Java Parser Generator: https://javacc.github.io/javacc/ Keith Cooper, Linda Torczon, "Engineering a Compiler", Second Edition, Morgan Kaufmann |
Yarıyıl İçi Çalışmaları | Sayı | Katkı Payı (%) |
---|---|---|
Ödev | 5 | 40 |
Ara Sınavlar/Sözlü Sınavlar/Kısa Sınavlar | 1 | 20 |
Final Sınavı | 1 | 40 |
Total: | 7 | 100 |
Etkinlikler | Sayısı | Süresi (saat) | Toplam İş Yükü (saat) |
---|---|---|---|
Ders Saati | 14 | 3 | 42 |
Ödev | 5 | 30 | 150 |
Dersle İlgili Sınıf Dışı Etkinlikler | 1 | 3 | 3 |
Ara Sınavlar/Sözlü Sınavlar/Kısa Sınavlar | 1 | 2 | 2 |
Final Sınavı | 1 | 3 | 3 |
Toplam İş Yükü (saat): | 200 |
# | PY1 | PY2 | PY3 | PY4 | PY5 | PY6 | PY7 | PY8 | PY9 | PY10 | PY11 | PY12 |
OC1 | 3 | 2 | 3 | 3 | ||||||||
OC2 | 3 | 2 | 3 | 3 | ||||||||
OC3 | 2 |