Dil İşleyiciler (COMPE 424) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Saati Uygulama Saati Laboratuar Saati Kredi AKTS Dil İşleyiciler COMPE 424 Güz 3 0 0 3 5 Ön Koşul Ders(ler)i Dersin Dili Dersin Türü Dersin Seviyesi Ders Verilme Şekli Dersin Öğrenme ve Öğretme Teknikleri İngilizce Teknik Seçmeli Dersler Lisans Yüz Yüze Anlatım Dersin Koordinatörü Dersin Öğretmen(ler)i
Dersin Asistanı Dersin Amacı Dersin Eğitim Çıktıları Dersin İçeriği Öğrenciye derleyici tasarımı uygulaması bağlamında dil işleyici geliştirebilmesi için gereken yeteneklerin kazandırılması. Bu dersi başarıyla tamamlayabilen öğrenciler; Lex ve Yacc gibi sözdizim analizörlerinin tanıtımı ve bunların derleyici inşası bağlamında kullanımlarının öğrenilmesi. Üst düzey programlama dilleri kavramlarının daha derinden anlaşılması. Derleyicinin kısımları olan tarayıcı ve ayrıştıcının tasarlanması ve gerçekleştirimi. Derleme ve yorumlamaya ilişkin temel kavramlar. Tek-geçişli ve çoklu-geçişli dil çevirmenleri. Sözcük analizörü. Yukarıdan aşağıya ayrıştırma ve LL(1) gramerleri. Özyineli iniş metodu. Aşağıdan yukarı ayrıştırma. Kaydır-indirge tekniği. Operatör öncelik grameri, LR(0) ve SLR(1) grammerleri. Sözdizim yönlendirimli çevrim. Hata işleme ve toparlanma. Bellek özgüleme. Statik ve dinamik özgülemeler. Kod üretimi. Derleyici optimizasyonu teknikleri. Tarayıcı ve ayrıştırıcı üreticileri. Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları HaftaKonular Ön Hazırlık 1 Derlemeye giriş Ana ders kitabı Bölüm 1 2 Basit tek-geçişli derleyici Ana ders kitabı Bölüm 2 3 Sözcük analizi Ana ders kitabı Bölüm 3 4 Sözdizim analizi Ana ders kitabı Bölüm 4 5 Sözdizim yönlemdirimli çevrim Ana ders kitabı Bölüm 5 6 Sözdizim yönlemdirimli çevrim Ana ders kitabı Bölüm 5
7 Tip kontrolü Ana ders kitabı Bölüm 6 8 Çalıştırma ortamları Ana ders kitabı Bölüm 7 9 Çalıştırma ortamları Ana ders kitabı Bölüm 7 10 Çalıştırma ortamları Ana ders kitabı Bölüm 7 11 Ara kod üretimi Ana ders kitabı Bölüm 8 12 Kod üretimi Ana ders kitabı Bölüm 9 13 Kod üretimi Ana ders kitabı Bölüm 9 14 Kod otimizasyonu Ana ders kitabı Bölüm 10 15 Gözden geçirme 16 Gözden geçirme Kaynaklar Ders Kitabı: Diğer Kaynaklar: 1. Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools (2nd Edition), 2006, ISBN: 0321486811. (Dragon Book) 1. 1. Steven Muchnick, Advanced Compiler Design and Implementation, 1997, Morgan Kaufmann Publishers, ISBN:1-55860-320-4. 2. 2. Doug Brown, John Levine, Tony Mason, UNI Programming Tools: Lex & Yacc, O Reilly, 1992. 3. 3. Dick Grune, Henri E. Bal, Ceriel J.H. Jacobs, and Koen Langendoen VU University Amsterdam, Amsterdam, The Netherlands. John Wiley & Sons, Ltd., pp. 736 + xviii; ISBN 0471976970, 2000. 4. 4. http://dinosaur.compilertools.net/yacc/. 5. 5. Andrew W. Appel, Jens Palsberg, Modern Compiler Implementation in Java (2nd edition), Cambridge Univ. Press, ISBN-13: 9780521820608, 2002.
Değerlendirme Sistemi Çalışmalar Sayı Katkı Payı Devam/Katılım - - Laboratuar - - Uygulama - - Alan Çalışması - - Derse Özgü Staj - - Küçük Sınavlar/Stüdyo Kritiği - - Ödevler 2 15 Sunum - - Projeler 1 30 Seminer - - Ara Sınavlar/Ara Juri 1 25 Genel Sınav/Final Juri 1 30 Toplam 5 100 Yarıyıl İçi Çalışmalarının Başarı Notu Katkısı Yarıyıl Sonu Çalışmalarının Başarı Notuna Katkısı 70 30 Toplam 100
Ders Kategorisi Temel Meslek Dersleri Uzmanlık/Alan Dersleri Destek Dersleri İletişim ve Yönetim Becerileri Dersleri Aktarılabilir Beceri Dersleri Dersin Öğrenim Çıktılarının Program Yeterlilikleri ile İlişkisi # Program Yeterlilikleri / Çıktıları Katkı Düzeyi 1 2 3 4 5 1 Matematik, fen bilimleri ve hesaplama alanlarındaki bilgi birikimini bilgisayar mühendisliği problemlerinin çözümüne uygulama becerisi. 2 Bilgisayar sistemlerine özgü sorunları analiz etme ve modelleme, çözümleri için uygun gereksinimleri belirleme ve tanımlama becerisi. 3 Belirlenen gereksinimleri karşılayacak bir bilgisayar sistemini, sistem parçasını, işlemi veya programı tasarlama, geliştirme ve değerlendirme becerisi. 4 Bilgisayar sistemleri mühendislik uygulamaları için modern teknik ve mühendislik araçlarını kullanma becerisi.
5 Hesaplama ihtiyaçlarını anlamak için deney tasarlama, veri toplama, analiz etme, yorumlama ve doğru seçimler yapabilme becerisi. 6 Disiplin içi ve disiplinler arası takımlarda veya bireysel olarak etkin biçimde çalışabilmek için gerekli organizasyonel ve iş yeteneklerini ortaya koyabilme becerisi. 7 Türkçe ve İngilizce dillerinde etkin iletişim kurabilme becerisi. 8 Yaşam boyu öğrenmenin gerekliliği bilinci ve bilgiye erişebilme, bilim ve teknolojideki son gelişmeleri takip edebilme ve kendini sürekli yenileme becerisi. 9 Bilgisayar Mühendisliği alanında mesleki, hukuksal, etik ve sosyal sorunlar hakkında farkındalık ve sorumluluk bilinci. 10 Proje ve risk yönetim becerisi; girişimciliğin, yenilikçilik ve sürdürülebilir kalkınmanın önemi hakkında farkındalık; uluslararası standartların ve yöntemlerin bilinmesi. 11 Karar alırken, Bilgisayar Mühendisliği uygulamalarının evrensel, çevresel, sosyal ve hukuksal sonuçları konusunda farkındalık. 12 Sayısal hesaplama ve sayısal gösterim sistemlerini analiz, tasarım ve ifade becerisi. 13 Hesaplama problemlerinin çözülmesinde programlama dillerini ve uygun bilgisayar mühendisliği kavramlarını kullanma becerisi. ECTS/İş Yükü Tablosu Aktiviteler Sayı Süresi (Saat) Toplam İş Yükü
Ders saati (Sınav haftası dahildir: 16 x toplam ders saati) Laboratuar Uygulama Derse Özgü Staj Alan Çalışması Sınıf Dışı Ders Çalışma Süresi Sunum/Seminer Hazırlama 16 3 48 16 3 48 Projeler 1 20 20 Ödevler 2 5 10 Küçük Sınavlar/Stüdyo Kritiği Ara Sınavlara/Ara Juriye Hazırlanma Süresi Genel Sınava/Genel Juriye Hazırlanma Süresi 1 10 10 1 15 15 Toplam İş Yükü 151