Dersin Adı | Kodu | Yarıyıl | T+U+L (saat/hafta) | Türü (Z / S) | Yerel Kredi | AKTS |
---|---|---|---|---|---|---|
Derleyici Tasarımı | CMPE 473 | Güz | 03+00+00 | Seçmeli | 3 | 5 |
Akademik Birim: | Mühendislik ve Doğa Bilimleri Fakültesi |
Öğrenim Türü: | Örgün Eğitim |
Ön Koşullar | Yok |
Öğrenim Dili: | İngilizce |
Dersin Düzeyi: | Lisans |
Dersin Koordinatörü: | Rahim DEHKHARGHANİ & Taner ARSAN |
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. Öğrencilerin çağdaş bir dilin büyükçe bir alt kümesi için, sanal bir makinayı hedef alan, bir derleyici yazması planlanmıştır. |
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 | Ders ve uygulama |
Hafta | Konular | Ön Hazırlık | ÖÇ |
---|---|---|---|
1 | Giriş: Derleyicilere karşı yorumlayıcılar, derleyici yapısı. | Ders notları. | 1,2 |
2 | Java Virtual Machine ve çalışma zamanı çevresi. | Ders notları. | 1,2 |
3 | j—derleyicisi haritası | Ders notları. | 1,2 |
4 | Sözcüksel çözümleme. Düzenli deyimler, sonlu durum otomatı ve deterministik sonlu durum otomatı. | Ders notları. | 1,3 |
5 | İçerikten Bağımsız Gramer ve ayrıştırma. | Ders notları. | 1 |
6 | Yukarıdan-aşağı ayrıştırma. LL(1) ayrıştırıcılar. | Ders notları. | 1,3 |
7 | Yukarıdan-aşağı ayrıştırma. Özyinelemeli ayrıştırıcılar. | Ders notları. | 1,3 |
8 | Ayrıştırıcı üretici kullanma. JavaCC | Ders notları. | 1,3 |
9 | Ara sınav | Ders notları. | 3,4 |
10 | Semantik çözümleme. | Ders notları. | 2,3 |
11 | Semantik çözümleme. JVM Kodu üretimi. | Ders notları. | 2,3 |
12 | JVM Kodu üretimi. | Ders notları. | 2,3 |
13 | Optimizasyona giriş | Ders notları. | 2 |
14 | Meşhur Derleyiciler | Ders notları. | 1,2 |
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: http://docs.oracle.com/javase/specs/jls/se7/html/index.html The Java Virtual Machine Specification: http://docs.oracle.com/javase/specs/jvms/se7/html/index.html Java 7.0 API: http://docs.oracle.com/javase/7/docs/api/ JavaCC: The Java Parser Generator: https://javacc.java.net 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 | 3 | 14 | 42 |
Ödev | 5 | 5 | 25 |
Ara Sınavlar/Sözlü Sınavlar/Kısa Sınavlar | 1 | 20 | 20 |
Final Sınavı | 1 | 40 | 40 |
Toplam İş Yükü (saat): | 127 |