CEN408 Compilers

6 AKTS - 3-0 Süre (T+U)- 8. Yarıyıl- 3 Yerel Kredi

Genel Bilgi

Kod CEN408
Ad Compilers
Yarıyıl 8. Yarıyıl
Süre (T+U) 3-0 (T-U) (17 Hafta)
AKTS 6 AKTS
Yerel Kredi 3 Yerel Kredi
Eğitim Dil İngilizce
Seviye Lisans Dersi
Tür Normal
Öğretim Şekli Yüz Yüze Öğretim
Bilgi Paketi Koordinatörü Prof. Dr. SELMA AYŞE ÖZEL


Dersin Amacı

Programlama dilleri için gramer okuyabilmek, yazabilmek; derleyici sistemlerinin nasıl çalıştığını öğrenmek.

Dersin İçeriği

Gramer okuma ve yazma, sözlüksel analiz, çözümleme, anlamsal analiz, sembol tabloları, çalışma zamanı analizi, kod üretme, optimizasyon, basit bir dil için derleyici tasarlama.

Dersin Ön Koşulu

Programlama dillerinin temel kavramlarının bilinmesi gerekir.

Kaynaklar

Aho, A., Lam, M.S., Sethi, R., Ullman, J.D., Compilers: Principles, Techniques, and Tools, 2nd Edition, Addison Wesley, 2006.

Notlar

Douglas Thain, Introduction to Compilers and Language Design, 2nd edition, 2020.


Dersin Öğrenme Çıktıları

Sıra Dersin Öğrenme Çıktıları
ÖÇ01 Bir programlama dili için geliştirilmiş bir grameri okuyabilir.
ÖÇ02 Yeni bir programlama dili için gramer yazabilir.
ÖÇ03 Bir derleyicinin ana bileşenlerinin neler olduğunu açıklar.
ÖÇ04 Bir derleyicinin nasıl çalıştığını açıklar.


Program Öğrenme Çıktıları ile İlişkisi

Sıra Tür Program Öğrenme Çıktıları Duzey
PÖÇ01 Bilgi - Kuramsal, Olgusal 1. Matematik, fen bilimleri ve bilgisayarla ilgili mühendislik konularında yeterli altyapıya sahip olma; bu alanlardaki kuramsal bilgileri beraber kullanabilme 3
PÖÇ02 Bilgi - Kuramsal, Olgusal 2. Karmaşık mühendislik problemlerini saptama, tanımlama, formüle etme ve çözme becerisi; bu amaçla uygun analitik yöntemler ve modelleme tekniklerini seçme ve uygulama
PÖÇ03 Bilgi - Kuramsal, Olgusal 3. Karmaşık bir sistemi, sistem bileşenini ya da süreci analiz etme ve istenen gereksinimleri karşılamak üzere gerçekçi kısıtlar altında tasarlama becerisi; bu doğrultuda modern tasarım yöntemlerini uygulama becerisi 4
PÖÇ04 Bilgi - Kuramsal, Olgusal 4. Mühendislik uygulamaları için gerekli olan modern teknik ve araçları geliştirme, seçme ve kullanma becerisi; bilişim teknolojilerini etkin kullanma becerisi 2
PÖÇ05 Bilgi - Kuramsal, Olgusal 5. Karmaşık bilgisayar mühendisliği problemlerin çözümüne ilişkin deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama becerisi
PÖÇ06 Bilgi - Kuramsal, Olgusal Bireysel olarak ve disiplin içi/çok disiplinli takımlarda etkin çalışabilme becerisi, sorumluluk alma ve özgüven 3
PÖÇ07 Beceriler - Bilişsel, Uygulamalı Bilgiye erişebilme, kaynak araştırması yapabilme ve bilgi kaynaklarını kullanabilme becerisi 5
PÖÇ08 Beceriler - Bilişsel, Uygulamalı Yaşam boyu öğrenmenin gerekliliği bilinci; bilim ve teknolojideki gelişmeleri izleme ve kendini sürekli yenileme becerisi 4
PÖÇ09 Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği 9. Türkçe sözlü ve yazılı etkin iletişim kurma, ve en az bir yabancı dilde teknik yayın okuyup anlayabilme, rapor hazırlama ve sunum yapma becerisi 3
PÖÇ10 Yetkinlikler - Öğrenme Yetkinliği Mesleki ve etik sorumluluk bilinci; mühendislik uygulamalarında kullanılan standartlar hakkında bilgi
PÖÇ11 Yetkinlikler - Öğrenme Yetkinliği 11. Proje yönetimi, işyeri uygulamaları, çalışanların sağlığı, çevre ve iş güvenliği, ve mühendislik uygulamalarının hukuksal sonuçları hakkında farkındalık
PÖÇ12 Yetkinlikler - Öğrenme Yetkinliği 12. Mühendislik çözümlerinin ve uygulamalarının evrensel ve toplumsal boyutlardaki etkileri, girişimcilik ve yenilikçilik, ve çağın sorunları hakkında bilgi sahibi olmak


Haftalık Akış

Hafta Konu Ön Hazırlık Yöntemler
1 Derleyici sistemlerine giriş Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
2 Sözlüksel analiz: Düzenli ifadeler, Lex Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
3 Sözlüksel analiz: Otomata Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
4 Bağlamdan Bağımsız Gramerler Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
5 Yukarıdan aşağıya ve LL inceleme Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
6 Aşağıdan yukarıya, SLR, LR inceleme Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
7 Yacc sistemi Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
8 Ara Sınav Ders notlarının okunması Ölçme Yöntemleri:
Yazılı Sınav
9 Soyut yazım kuralı ağacı Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
10 Tip kontrolü Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
11 Assembly dili Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
12 Kode üretme Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
13 Çalışma zamanı Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
14 Optimizasyon Ders notlarının okunması Öğretim Yöntemleri:
Anlatım, Soru-Cevap
15 Proje sunumları Ders notlarının okunması, proje sunumu hazırlanması. Öğretim Yöntemleri:
Grup Çalışması, Proje Temelli Öğrenme
16 Yarıyıl Sonu Sınavına hazırlık Ders notlarının okunması Öğretim Yöntemleri:
Soru-Cevap
17 Yarıyıl Sonu Sınavları Ders notlarının okunması Ölçme Yöntemleri:
Yazılı Sınav


Öğrenci İş Yükü - AKTS

Çalışmalar Sayısı Süresi (Saat) İş Yükü (Saat)
Ders ile İlgili Çalışmalar
Ders (Sınav haftaları dahil değildir) 14 3 42
Sınıf Dışı Ders Çalışma (Ön çalışma, pekiştirme) 14 5 70
Değerlendirmeler ile İlgili Çalışmalar
Ödev, Proje, Diğer 1 12 12
Ara Sınavlar (Yazılı, Sözlü, vs.) 1 12 12
Yarıyıl/Yıl Sonu/Final Sınavı 1 20 20
Toplam İş Yükü (Saat) 156
Toplam İş Yükü / 25 (s) 6,24
AKTS 6 AKTS