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