Ders Adı | Kodu | Verildiği Yıl | Verildiği Yarıyıl | Süresi (T+U) | Yerel Kredisi | AKTS Kredisi |
Derleyici Tasarımı | CENG 346 | | | 3 + 0 | 3 | 5,00 |
|
Ders Bilgileri |
Dersin Öğretim Dili | İngilizce |
Dersin Seviyesi | Lisans |
Dersin Türü | Seçmeli |
Dersin Veriliş Biçimi | Yüz Yüze |
|
Dersin Öğrenme Kazanımları:
Bu dersi başarı ile tamamlayan öğrenciler: |
1. 1. Derleyici uygulamasının teori ve pratiğini anlamak 2. Sonlu durum makinelerini ve sözcüksel taramayı öğrenmek 3. Bağlamdan bağımsız gramerleri, derleyici ayrıştırma tekniklerini, soyut sözdizimi ağaçlarının yapımını, sembol tablolarını, ara makine temsillerini ve gerçek kod üretimini öğrenmek |
|
Dersin Önkoşulları ve Birlikte Alınması Gereken Dersler | Yok |
Daha Önce Alınmış Olması Önerilen Dersler | Yok |
|
Dersin Tanımı:
Derleyicilerin tasarımı ve inşasında yer alan ilkeler, algoritmalar ve veri yapıları. Sonlu durum makineleri, sözcüksel analiz, bağlamdan bağımsız gramerler, aşağı itmeli ayrıştırıcılar, LR ve LALR ayrıştırıcıları, diğer ayrıştırma teknikleri, sembol tabloları, hata kurtarma, ara kod üretimine giriş. |
|
Üretken Yapay Zeka Kullanımı:
Öğrenciler, ders ödevleri ve projelerinde destekleyici bir araç olarak üretken yapay zekâ (YZ) araçlarını kullanabilirler. Ancak bu araçlar, bağımsız çalışmanın yerine geçmemeli, yalnızca yardımcı olarak görülmelidir. Yapay zekâ tarafından üretilen bilgilerin ve kaynakların doğruluğunu kontrol etmek öğrencilerin sorumluluğundadır, çünkü:
Yapay zekâ araçları yanlış veya yanıltıcı bilgiler üretebilir ve var olmayan kaynaklara atıfta bulunabilir.
Yapay zekâ tarafından üretilen içerikler, fikrî mülkiyetleri uygun şekilde atıfta bulunmadan kullanabilir ve bu durum etik sorunlara yol açabilir.
Yapay zekâ desteğiyle oluşturulan her türlü içerik veya kod, uygun şekilde kaynak gösterilerek referans verilmelidir.
Yapay zekâ tarafından üretilen içeriğin nasıl kaynak gösterileceği ile ilgili yönergeler için aşağıdaki kaynağa başvurabilirsiniz:
Chicago Atıf Sistemi – Yapay Zekâ İçeriklerinin Kaynak Gösterimi (https://www.chicagomanualofstyle.org/qanda/data/faq/topics/Documentation/faq0422.htm)
|
|
Dersin İçeriği (Haftalık Konu Dağılımı): |
|
Hafta | Konu |
1 | Derse genel giriş, ilgili kavramlara genel bakış |
2 | Sözcük Analiz – FSM'ler ile belirteç tanıma |
3 | Sözcük Analizi – Sözcük analizi için otomatik araçlar (Flex) |
4 | Sözdizimsel Analiz – Yukarıdan aşağıya derleme |
5 | Sözdizimsel Analiz – Tahmine dayalı yukarıdan aşağıya derleme |
6 | Sözdizimsel Analiz – Aşağıdan yukarıya derleme |
7 | Sözdizimsel Analiz – Nitelik gramerleri |
8 | Sözdizimsel Analiz – Soyut sözdizimi ve sözdizimi ağaçları |
9 | Ara Sınav |
10 | Sözdizimsel Analiz – Ayrıştırıcı Oluşturucular (Bison) |
11 | Semantik Analiz ve Kod Oluşturma – Sözdizimine yönelik çeviri |
12 | Semantik Analiz ve Kod Üretimi – Tür kontrolü |
13 | Semantik Analiz ve Kod Üretimi – Ara kod ve soyut/sanal makineler |
14 | Semantik Analiz ve Kod Üretimi – Kod üretimi |
|
Kaynaklar: |
Aho, Sethi, Ullman: Compilers: Principles, Techniques and Tools, Addison Wesley, 1986, 978-0201100884 |
|
Diğer Kaynaklar: |
Michael L. Scott: Programming Language Pragmatics, Morgan Kaufmann, 2009, 978-0123745149. |
|
Öğretim Yöntem ve Teknikleri: |
Haftada 3 saat ders. Laboratuvar çalışması yok, ancak bir oyuncak dil için derleyici oluşturmak üzere kendi kendine çalışma ve kod üretimi. Flex, sözcüksel analiz aracı olarak kullanılacak; Bison, ayrıştırıcı üreteçleri olarak kullanılacak. |
|
Değerlendirme Sistemi: |
Yöntem | Adet | Katkı (%) |
Ara Sınav | 1 | %30 |
Proje | 1 | %40 |
Final Sınavı | 1 | %30 |
|
Ders İşbaşı Eğitimi (iş yerinde eğitim) Gerektiriyor mu? |
Gerektirmiyor |
|
Dersin AKTS İş Yükü:
|
# | Aktivite | Adet | Süre (Saat) | İş Yükü |
1 | Derslere Katılım (haftalık bazda) | 14 | 3,00 | 42,00 |
2 | Laboratuvarlara/Derslere Katılım (haftalık bazda) | 0 | 0,00 | 0,00 |
3 | Notların önceden hazırlanması ve son haline getirilmesi (haftalık bazda) | 14 | 2,00 | 28,00 |
4 | İlgili materyalin toplanması ve seçilmesi (bir kez) | 0 | 0,00 | 0,00 |
5 | İlgili materyalin kendi kendine incelenmesi (haftalık bazda) | 14 | 3,00 | 42,00 |
6 | Ev ödevleri | 5 | 4,00 | 20,00 |
7 | Sınavlara Hazırlık | 0 | 0,00 | 0,00 |
8 | Ara Sınavlara Hazırlık (Sınavların süresi dahil) | 1 | 8,00 | 8,00 |
9 | Dönem Ödevi/Vaka Çalışması Raporunun Hazırlanması (sözlü sunum dahil) | 0 | 0,00 | 0,00 |
10 | Dönem Projesi/Saha Çalışması Raporunun Hazırlanması (sözlü sunum dahil) | 0 | 0,00 | 0,00 |
11 | Final Sınavına Hazırlık (sınav süresi dahil) | 1 | 10,00 | 10,00 |
|
Dersin Program Yeterlilikleri vs. Öğrenme Kazanımları:
|
# | Program Yeterlilikleri | Katkı (0-4) |
1 | Matematik, fen bilimleri, temel mühendislik, bilgisayarla hesaplama ve ilgili mühendislik disiplinine özgü konularda bilgi; bu bilgileri, karmaşık mühendislik problemlerinin çözümünde kullanabilme becerisi. | 3 |
2 | Karmaşık mühendislik problemlerini, temel bilim, matematik ve mühendislik bilgilerini kullanarak ve ele alınan problemle ilgili BM Sürdürülebilir Kalkınma Amaçlarını gözeterek tanımlama, formüle etme ve analiz becerisi. | 3 |
3 | Karmaşık mühendislik problemlerine yaratıcı çözümler tasarlama becerisi; karmaşık sistemleri, süreçleri, cihazları veya ürünleri gerçekçi kısıtları ve koşulları gözeterek, mevcut ve gelecekteki gereksinimleri karşılayacak biçimde tasarlama becerisi. | 2 |
4 | Karmaşık mühendislik problemlerinin analizi ve çözümüne yönelik, tahmin ve modelleme de dahil olmak üzere, uygun teknikleri, kaynakları ve modern mühendislik ve bilişim araçlarını, sınırlamalarının da farkında olarak seçme ve kullanma becerisi. | 1 |
5 | Karmaşık mühendislik problemlerinin incelenmesi için literatür araştırması, deney tasarlama, deney yapma, veri toplama, sonuçları analiz etme ve yorumlama dahil, araştırma yöntemlerini kullanma becerisi. | 0 |
6 | Mühendislik uygulamalarının BM Sürdürülebilir Kalkınma Amaçları kapsamında, topluma, sağlık ve güvenliğe, ekonomiye, sürdürülebilirlik ve çevreye etkileri hakkında bilgi; mühendislik çözümlerinin hukuksal sonuçları konusunda farkındalık. | 0 |
7 | Mühendislik meslek ilkelerine uygun davranma, etik sorumluluk hakkında bilgi; hiçbir konuda ayrımcılık yapmadan, tarafsız davranma ve çeşitliliği kapsayıcı olma konularında farkındalık. | 0 |
8 | Bireysel olarak ve disiplin içi ve çok disiplinli takımlarda (yüz yüze, uzaktan veya karma) takım üyesi veya lideri olarak etkin biçimde çalışabilme becerisi. | 0 |
9 | Hedef kitlenin çeşitli farklılıklarını (eğitim, dil, meslek gibi) dikkate alarak, teknik konularda sözlü, yazılı etkin iletişim kurma becerisi. | 0 |
10 | Proje yönetimi ve ekonomik yapılabilirlik analizi gibi iş hayatındaki uygulamalar hakkında bilgi; girişimcilik ve yenilikçilik hakkında farkındalık. | 0 |
11 | Bağımsız ve sürekli öğrenebilme, yeni ve gelişmekte olan teknolojilere uyum sağlayabilme ve teknolojik değişimlerle ilgili sorgulayıcı düşünebilmeyi kapsayan yaşam boyu öğrenme becerisi. | 2 |