BİLGİSAYAR MÜHENDİSLİĞİ
Lisans TYYÇ: 6. Düzey QF-EHEA: 1. Düzey EQF-LLL: 6. Düzey

Ders Genel Tanıtım Bilgileri

Ders Kodu: 1410002002
Ders İsmi: Derleyici Tasarımı
Ders Yarıyılı: Güz
Ders Kredileri:
Teorik Pratik Kredi AKTS
3 0 3 5
Öğretim Dili: TR
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: Hayır
Dersin Türü: Bölüm Seçmeli
Dersin Seviyesi:
Lisans TYYÇ:6. Düzey QF-EHEA:1. Düzey EQF-LLL:6. Düzey
Dersin Veriliş Şekli: Yüz yüze
Dersin Koordinatörü: Dr.Öğr.Üyesi Recep DURANAY
Dersi Veren(ler): Doç. Dr. Fatih KOÇAN
Dersin Yardımcıları:

Dersin Amaç ve İçeriği

Dersin Amacı: Bu dersin amacı, öğrencilerin derleyici tasarımı ve geliştirme konularında bilgi ve becerilere sahip olmasını sağlamaktır.
Dersin İçeriği: Bu ders öğrencilere biçimsel bir dilden bir diğer biçimsel dile çeviri yapmak için kullanılan metodları açıklar. Ders, tarayıcı adımından başlayarak ayrıştırıcı tasarımı ve geliştirilmesine kadar kullanılan adımları açıklar. Ayrıca, ders anlamsal analiz ve lokal ve global derleyici optimizasyonu konularında bilgi verir. Ders sırasında, her öğrencinin lex ve yacc yazılım araçları kullanarak basit bir derleyici tasarlaması beklenir.

Öğrenme Kazanımları

Bu dersi başarıyla tamamlayabilen öğrenciler;
Öğrenme Kazanımları
1 - Bilgi
Kuramsal - Olgusal
1) Derleyici adımları hakkında temel bilgi; otomat teorisi ve biçimsel diller bilgisini kullanma becerisi.
2 - Beceriler
Bilişsel - Uygulamalı
1) Derleyiciler tarayıcı modüllerini tasarım ve geliştirme becerisi.
3 - Yetkinlikler
İletişim ve Sosyal Yetkinlik
Öğrenme Yetkinliği
1) Derleyiciler için vakaya uygun ayrıştırıcı stratejilerini seçme becerisi. Alternatif metodlar konusunda bilgi (yukarıdan-aşağıya veya aşağıdan-yukarıya, vb.)
2) Derleyici tasarımı ve gerçeklenmesi için gerekli olan güncel teknolojiler konusunda bilgi ve bu teknolojileri etkin bir şekilde kullanabilme becerisi.
Alana Özgü Yetkinlik
Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği

Ders Akış Planı

Hafta Konu Ön Hazırlık
1) Derleyici Nedir? Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
2) Hedef Diller Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
3) Biçimsel Gramerler Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
4) Ara Gösterimler Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
5) Sözlüksel Çözümleme Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
6) AYRIŞTIRICILAR III (AŞAĞIDAN-YUKARI AYRIŞTIRICILAR) Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
7) Hata ele alma Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
8) ARA SINAV
9) Ayrıştırıcı üreteç Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
10) Anlamsal kontrol Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
11) Kod Üretimi Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
12) Kod optimizasyonu Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
13) VSL için derleyicinin tamamı Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
14) Ödevleri etkileşimli olarak gözden geçirme Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly. An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
15) Yıl sonu sınavı
16) Final

Kaynaklar

Ders Notları / Kitaplar: Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly.
An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
Diğer Kaynaklar: Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly.
An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.

Ders - Program Öğrenme Kazanım İlişkisi

Ders Öğrenme Kazanımları

1

2

3

4

Program Kazanımları
1) PÇ 1.1) Matematik, fen bilimleri ve bilgisayar mühendisliği konularında yeterli bilgi birikimi
2) PÇ 1.2) Matematik, fen bilimleri ve bilgisayar mühendisliği konularında kuramsal ve uygulamalı bilgileri mühendislik problemlerini modelleme ve çözme için uygulayabilme becerisi.
3) PÇ 2.1) Karmaşık mühendislik problemlerini saptama
4) PÇ 2.2) Karmaşık mühendislik problemlerini tanımlama
5) PÇ 2.3) Karmaşık mühendislik problemlerini formüle etme
6) PÇ 2.4) Karmaşık mühendislik problemlerini çözme becerisi
7) PÇ 2.5) Uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi
8) PÇ 3.1) Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi
9) PÇ 3.2) Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında modern tasarım yöntemlerini uygulama becerisi
10) PÇ 4.1) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme
11) PÇ 4.2) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi
12) PÇ 4.3) Bilişim teknolojilerini etkin bir şekilde kullanma becerisi.
13) PÇ 5.1) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi deney tasarlama
14) PÇ 5.2) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi deney yapma,
15) PÇ 5.3 ) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi veri toplama
16) PÇ 5.4) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi sonuçları analiz etme
17) PÇ 5.5) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi yorumlama becerisi

Ders - Öğrenme Kazanımı İlişkisi

Etkisi Yok 1 En Düşük 2 Düşük 3 Orta 4 Yüksek 5 En Yüksek
           
Dersin Program Kazanımlarına Etkisi Katkı Payı
1) PÇ 1.1) Matematik, fen bilimleri ve bilgisayar mühendisliği konularında yeterli bilgi birikimi
2) PÇ 1.2) Matematik, fen bilimleri ve bilgisayar mühendisliği konularında kuramsal ve uygulamalı bilgileri mühendislik problemlerini modelleme ve çözme için uygulayabilme becerisi.
3) PÇ 2.1) Karmaşık mühendislik problemlerini saptama
4) PÇ 2.2) Karmaşık mühendislik problemlerini tanımlama
5) PÇ 2.3) Karmaşık mühendislik problemlerini formüle etme
6) PÇ 2.4) Karmaşık mühendislik problemlerini çözme becerisi
7) PÇ 2.5) Uygun analiz ve modelleme yöntemlerini seçme ve uygulama becerisi
8) PÇ 3.1) Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında, belirli gereksinimleri karşılayacak şekilde tasarlama becerisi
9) PÇ 3.2) Karmaşık bir sistemi, süreci, cihazı veya ürünü gerçekçi kısıtlar ve koşullar altında modern tasarım yöntemlerini uygulama becerisi
10) PÇ 4.1) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları geliştirme
11) PÇ 4.2) Mühendislik uygulamalarında karşılaşılan karmaşık problemlerin analizi ve çözümü için gerekli olan modern teknik ve araçları seçme ve kullanma becerisi 5
12) PÇ 4.3) Bilişim teknolojilerini etkin bir şekilde kullanma becerisi.
13) PÇ 5.1) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi deney tasarlama
14) PÇ 5.2) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi deney yapma,
15) PÇ 5.3 ) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi veri toplama
16) PÇ 5.4) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi sonuçları analiz etme
17) PÇ 5.5) Karmaşık mühendislik problemlerinin veya disipline özgü araştırma konularının incelenmesi yorumlama becerisi

Öğrenme Etkinliği ve Öğretme Yöntemleri

Bireysel çalışma ve ödevi
Ödev

Ölçme ve Değerlendirme Yöntemleri ve Kriterleri

Yazılı Sınav (Açık uçlu sorular, çoktan seçmeli, doğru yanlış, eşleştirme, boşluk doldurma, sıralama)
Ödev

Ölçme ve Değerlendirme

Yarıyıl İçi Çalışmaları Aktivite Sayısı Katkı Payı
Devam 10 % 10
Ara Sınavlar 2 % 50
Yarıyıl/Yıl Sonu Sınavı 1 % 40
Toplam % 100
YARIYIL İÇİ ÇALIŞMALARININ BAŞARI NOTU KATKISI % 60
YARIYIL SONU ÇALIŞMALARININ BAŞARI NOTUNA KATKISI % 40
Toplam % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Aktiviteler Aktivite Sayısı Süre (Saat) İş Yükü
Ders Saati 14 3 42
Sınıf Dışı Ders Çalışması 30 3 90
Ara Sınavlar 2 4 8
Toplam İş Yükü 140