Ders Dosyası
Transkript
Ders Dosyası
Dil İşleyiciler (COMPE 424) Ders Detayları Ders Adı Ders Kodu Dönemi Ders Uygulama Laboratuar Kredi AKTS Saati Saati Saati Dil İşleyiciler COMPE 424 Güz 3 0 Ön Koşul Ders(ler)i Dersin Dili İngilizce Dersin Türü Teknik Seçmeli Dersler Dersin Seviyesi Lisans Ders Verilme Şekli Yüz Yüze Dersin Öğrenme ve Anlatım Öğretme Teknikleri Dersin Koordinatörü Dersin Öğretmen(ler)i 0 3 5 Dersin Asistanı Dersin Amacı Öğrenciye derleyici tasarımı uygulaması bağlamında dil işleyici geliştirebilmesi için gereken yeteneklerin kazandırılması. Dersin Eğitim Çıktıları Bu dersi başarıyla tamamlayabilen öğrenciler; Dersin İçeriği 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. • 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. Haftalık Konular ve İlgili Ön Hazırlık Çalışmaları Hafta Konular Ö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ı: 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 Diğer Kaynaklar: Implementation, 1997, Morgan Kaufmann Publishers, ISBN:1-55860-320-4. 2. 2. Doug Brown, John Levine, Tony Mason, UNIX 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ı 70 Yarıyıl Sonu Çalışmalarının Başarı Notuna Katkısı 30 Toplam 100 Ders Kategorisi Temel Meslek Dersleri Uzmanlık/Alan Dersleri X 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. X 2 Bilgisayar sistemlerine özgü sorunları analiz etme ve modelleme, çözümleri için uygun gereksinimleri belirleme ve tanımlama becerisi. X 3 Belirlenen gereksinimleri karşılayacak bir bilgisayar sistemini, sistem parçasını, işlemi veya programı tasarlama, geliştirme ve değerlendirme becerisi. X 4 Bilgisayar sistemleri mühendislik uygulamaları için modern teknik ve mühendislik araçlarını kullanma becerisi. X 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. X ECTS/İş Yükü Tablosu Aktiviteler Sayı Süresi (Saat) Toplam İş Yükü Ders saati (Sınav haftası dahildir: 16 x toplam ders saati) 16 3 48 16 3 48 Projeler 1 20 20 Ödevler 2 5 10 Ara Sınavlara/Ara Juriye Hazırlanma Süresi 1 10 10 Genel Sınava/Genel Juriye Hazırlanma Süresi 1 15 15 Laboratuar Uygulama Derse Özgü Staj Alan Çalışması Sınıf Dışı Ders Çalışma Süresi Sunum/Seminer Hazırlama Küçük Sınavlar/Stüdyo Kritiği Toplam İş Yükü 151