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ı:
The principles, algorithms, and data structures involved in the design and construction of compilers. Finite-state machines, lexical analysis, context-free grammars, push-down parsers, LR and LALR parsers, other parsing techniques, symbol tables, error recovery, an introduction to intermediate code generation. |
|
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: |
3 hours of lecturing per week. No Lab Work, but self-study and code generation to create a compiler for a toy language. Flex shall be used as lexical analysis tool; Bison shall be used as parser generators. |
|
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 |