Ders Adı | Kodu | Verildiği Yıl | Verildiği Yarıyıl | Süresi (T+U) | Yerel Kredisi | AKTS Kredisi |
Derleyici Tasarımı | CENG 346 | | | 3 + 0 | 3 | 5,00 |
|
Ders Bilgileri |
Dersin Öğretim Dili | İngilizce |
Dersin Seviyesi | Lisans |
Dersin Türü | Seçmeli |
Dersin Veriliş Biçimi | Yüz Yüze |
|
Dersin Öğrenme Kazanımları:
Bu dersi başarı ile tamamlayan öğrenciler: |
1. 1. Derleyici uygulamasının teori ve pratiğini anlamak 2. Sonlu durum makinelerini ve sözcüksel taramayı öğrenmek 3. Bağlamdan bağımsız gramerleri, derleyici ayrıştırma tekniklerini, soyut sözdizimi ağaçlarının yapımını, sembol tablolarını, ara makine temsillerini ve gerçek kod üretimini öğrenmek |
|
Dersin Önkoşulları ve Birlikte Alınması Gereken Dersler | Yok |
Daha Önce Alınmış Olması Önerilen Dersler | Yok |
|
Dersin Tanımı:
Derleyicilerin tasarımı ve inşasında yer alan ilkeler, algoritmalar ve veri yapıları. Sonlu durum makineleri, sözcüksel analiz, bağlamdan bağımsız gramerler, aşağı itmeli ayrıştırıcılar, LR ve LALR ayrıştırıcıları, diğer ayrıştırma teknikleri, sembol tabloları, hata kurtarma, ara kod üretimine giriş. |
|
Dersin İçeriği (Haftalık Konu Dağılımı): |
|
Hafta | Konu |
1 | Derse genel giriş, ilgili kavramlara genel bakış |
2 | Sözcük Analiz – FSM'ler ile belirteç tanıma |
3 | Sözcük Analizi – Sözcük analizi için otomatik araçlar (Flex) |
4 | Sözdizimsel Analiz – Yukarıdan aşağıya derleme |
5 | Sözdizimsel Analiz – Tahmine dayalı yukarıdan aşağıya derleme |
6 | Sözdizimsel Analiz – Aşağıdan yukarıya derleme |
7 | Sözdizimsel Analiz – Nitelik gramerleri |
8 | Sözdizimsel Analiz – Soyut sözdizimi ve sözdizimi ağaçları |
9 | Ara Sınav |
10 | Sözdizimsel Analiz – Ayrıştırıcı Oluşturucular (Bison) |
11 | Semantik Analiz ve Kod Oluşturma – Sözdizimine yönelik çeviri |
12 | Semantik Analiz ve Kod Üretimi – Tür kontrolü |
13 | Semantik Analiz ve Kod Üretimi – Ara kod ve soyut/sanal makineler |
14 | Semantik Analiz ve Kod Üretimi – Kod üretimi |
|
Kaynaklar: |
Aho, Sethi, Ullman: Compilers: Principles, Techniques and Tools, Addison Wesley, 1986, 978-0201100884 |
|
Diğer Kaynaklar: |
Michael L. Scott: Programming Language Pragmatics, Morgan Kaufmann, 2009, 978-0123745149. |
|
Öğretim Yöntem ve Teknikleri: |
Haftada 3 saat ders. Laboratuvar çalışması yok, ancak bir oyuncak dil için derleyici oluşturmak üzere kendi kendine çalışma ve kod üretimi. Flex, sözcüksel analiz aracı olarak kullanılacak; Bison, ayrıştırıcı üreteçleri olarak kullanılacak. |
|
Değerlendirme Sistemi: |
Yöntem | Adet | Katkı (%) |
Ara Sınav | 1 | %30 |
Proje | 1 | %40 |
Final Sınavı | 1 | %30 |
|
Ders İşbaşı Eğitimi (iş yerinde eğitim) Gerektiriyor mu? |
Gerektirmiyor |