KHÜ DERS KATALOG FORMU (COURSE CATALOGUE FORM)

advertisement
KHÜ
DERS KATALOG FORMU
(COURSE CATALOGUE FORM)
Kodu
(Code)
Dersin Adı
Course Name
Derleyici Tasarımı
Compiler Design
Yarıyılı
(Semester)
Kredisi
(Local Credits)
AKTS Kredisi
(ECTS Credits)
Ders Uygulaması, Saat/Hafta
(Course Implementation, Hours/Week)
Ders
Uygulama
Laboratuar
(Theoretical)
(Tutorial)
(Laboratory)
Bahar
3
8
(Spring)
Bölüm / Program
Bilgisayar Mühendisliği (Computer Engineering)
(Department/Program)
Dersin Türü
Dersin Dili
Seçmeli (Elective)
İngilizce (English)
(Course Type)
(Course Language)
Software Engineering, Object-Oriented Languages, Data Structures, Theory of Formal
Dersin Önkoşulları
Languages and Automata Theory (e.g. Regular Expressions, Deterministic Finite State
(Course Prerequisites)
Automata, Non-Deterministic Finite State Automata, BNF rules)
Temel Bilim
Temel Mühendislik
Mühendislik Tasarım
İnsan ve Toplum Bilim
Dersin mesleki bileşene
(Basic Sciences)
(Engineering Science)
(Engineering Design)
(General Education)
katkısı, %
(Course Category
by Content, %)
CE473
Dersin İçeriği
Course Description
Derleme aşamaları, sözcüksel analiz, ayrıştırma, tür The phases of compilation, lexical analysis, parsing,
denetleme, JVM kodu üretme, ünlü Java derleyicilerini type checking, JVM code generation, survey of famous
Java compilers and discussion of modern compiler
inceleme ve modern derleyici konuları.
issues.
Dersin Amacı
Course Objectives
Derleyici düzenleme ve gerçekleştirme (biçimsel belirtim,
sözcüksel ve sözdizimsel analiz algoritmaları dahil olmak
üzere), kaynak programın içsel gösterimi, semantik
analiz, çalışma zamanı çevresi meseleleri ve kod üretimi.
Öğrenciler çağdaş bir dilin büyükçe bir alt kümesi için,
sanal bir makinayı hedef alan, bir derleyici yazacaklar.
Introduction
to
compiler
organization
and
implementation, including formal specifications and
algorithms for lexical and syntactic analysis, internal
representation of the source program, semantic analysis,
run-time environment issues and code generation.
Students will write a compiler for a reasonably large
subset of a contemporary language, targeted to a virtual
machine.
Dersin Öğrenme Çıktıları
Course Learning Outcomes
1. Be able to write parsers and produce an abstract
1. Ayrıştırıcı yazabilme ve soyut söz dizimi ağacı
syntax tree.
yazabilme.
2. Be able to analyze and generate code for a
2. Bir söz dizimi ağacı ile gösterilen bir programlama
programming construct represented by an abstract
yapısını çözümleyip, uygun kod üretebilme.
syntax tree.
3. Yapılan çalışmaları program açıklamaları ve, tasarım 3. Be able to document your work with program
tercihleri, karşılaştıkları problemler ve çözümlerini
comments and narratives about design choices,
anlatarak döküman haline getirebilme.
problems and their fixes.
Ders Kitabı
(Textbook)
Diğer Kaynaklar
(Other References)
Bill Campbell, Swami Iyer, and Bahar Akbal-Delibaş. Introduction to Compiler
Construction in a Java World. Chapman and Hall/CRC Press, 2013. ISBN 1439860882
The Java Language Specification: http://docs.oracle.com/javase/specs/jls/se7/html/index.html
The Java Virtual Machine Specification:
http://docs.oracle.com/javase/specs/jvms/se7/html/index.html
Java 7.0 API: http://docs.oracle.com/javase/7/docs/api/
JavaCC: The Java Parser Generator: https://javacc.java.net
Keith Cooper, Linda Torczon, "Engineering a Compiler", Second Edition, Morgan Kaufmann
Ödevler
Homework
Beş programlama odevi
Five programming assignments
Laboratuar Uygulamaları
Laboratory Work
Bilgisayar Kullanımı
Computer Use
Java programlama dili
Java Programming Language
Diğer Uygulamalar
Other Activities
Ünlü Java derleyicilerini ve modern derleyici
Survey of famous Java compilers and modern compiler
konularını araştırma.
issues.
Faaliyetler
Adedi
Değerlendirmedeki Katkısı, %
(Activities)
(Quantity)
(Effects on Grading, %)
Yıl İçi Sınavları
1
%20
(Midterm Exams)
Kısa Sınavlar
(Quizzes)
Ödevler
5
%40
Değerlendirme
(Homework)
Sistemi
Projeler
(Projects)
(Assessment Criteria)
Dönem Ödevi/Projesi
(Term Paper/Project)
Laboratuar Uygulaması
(Laboratory Work)
Diğer Uygulamalar
(Other Activities)
Final Sınavı
1
%40
(Final Exam)
DERS PLANI
(COURSE PLAN)
Hafta
(Week)
1
2
3
4
5
6
7
8
9
10
11
Konular
Topics
Giriş: derleyicilere karşı yorumlayıcılar,
derleyici yapısı.
Java Virtual Machine ve çalışma zamanı
çevresi.
j—derleyicisi haritası
Sözcüksel çözümleme. Düzenli deyimler,
sonlu durum otomatı ve deterministik
sonlu durum otomatı.
İçerikten Bağımsız Gramer ve ayrıştırma.
Yukarıdan-aşağı ayrıştırma. Özyinelemeli
ayrıştırıcılar.
Ayrıştırıcı üretici kullanma. JavaCC
Ara sınav için tekrar
Ara sınav
Semantik çözümleme.
JVM Kodu üretimi.
Introduction: compilers vs. interpreters,
compiler structure.
The Java Virtual Machine and its run-time
environment.
A map of the j-- compiler.
Lexical analysis (scanning).
expressions, fsa and dfa.
Regular
Dersin
Çıktıları
(Course
Outcomes)
1,2
1,2
1,2
1,3
Context-free grammars and parsing.
Top-down parsing. Recursive descent.
1
1,3
Using a parser generator. JavaCC
Recap for the Midterm Exam
Midterm Exam
Semantic analysis.
JVM Code generation.
1,3
2,3
2,3
12
13
14
Optimizasyona giriş
Meşhur Derleyiciler
Final sınavı için tekrar
Introduction to Optimization
Celebrity compilers
Recap for the Final Exam
2
1,2
Dersin Bilgisayar Mühendisliği Program Çıktılarına Katkısı
(Contribution of the Course to Computer Engineering Program Outcomes)
Program Çıktıları
Katkı Seviyesi
(Contribution level)
1
2
3
Program Outcomes
a
Temel Bilimler, Temel Mühendislik ve
Bilgisayar Mühendisliği tasarım ilke ve
yöntemlerini, mühendislik problemlerinin
modellenmesi ve çözümü için uygulayabilme
becerisi
Ability to apply the knowledge of
mathematics, science and engineering
principles to solve problems in electronics and
communications engineering
b
Ayrık Matematik kavram ve konularını
uygulayabilme becerisi
Ability to understand and apply discrete
mathematics
Karmaşık mühendislik problemlerini
tanımlama, veri toplama, yorumlama,
problemleri analiz etme, modelleme ve etkin
çözümler geliştirme ve uygulama becerisi
Donanım ve Yazılım bileşenleri ile bir
bilgisayar sisteminin, gerçekçi kısıtlar ve
koşullar altında, analizini, tasarımını ve
yönetimini, modern mühendislik yöntemleri ile
gerçekleştirebilme becerisi
Modern mühendislik teknik ve araçları ile
bilişim teknolojileri ve yazılımlarını geliştirme,
seçme ve etkin bir şekilde kullanabilme becerisi
Mühendislik problemlerinin incelenmesi için
laboratuvar ve bilgisayar ortamında deney
tasarlama, deney yapma, veri toplama,
sonuçları analiz etme ve yorumlama becerisi
Tek ve çok disiplinli takım çalışması
yürütebilme becerisi, buna yönelik bireysel
becerilere de sahip olma
Türkçe ve İngilizce olarak, yazılı ve sözlü etkili
iletişim kurabilme becerisi,
Kendi alanındaki uluslararası çalışmaları takip
edebilme becerisi
Ability to define complex engineering
problems, collect, analyze data, analyze
problems and develop models and implement
solutions for the engineering problems
c
d
e
f
g
h
i
j
Yaşam boyu öğrenmenin gerekliliği bilinci,
bilimi ve teknolojideki gelişmeleri izleyerek
kendini sürekli yenileyebilme becerisi, Mesleki
ve etik sorumluluk bilinci
k
Proje yönetimi, girişimcilik ve toplam kalite
yönetimi konularında farkındalık
l
Çağdaş toplumsal sorunlara duyarlılık,
mühendislik çözümlerinin etik ve hukuksal
sonuçları konusunda farkındalık.
X
X
Ability to analyze, design and manage the
hardware/software computer system
requirements with limited resources and
conditions by modern engineering principles
X
Ability to use modern engineering techniques,
tools and information technologies and
develop software equipment and software
Ability to conduct lab experiment with using
computer and to have the ability of collecting
data, analyze, interpret data and to solve
engineering problems
X
Ability to work on multi disciplinary topics
with team as well as individually
Ability to communicate Turkish and English
very well with written and oral form
Ability to follow international works in his or
her field
Ability to follow technological innovations
and to engage in life-long learning in order to
adapt himself/herself to the changing
conditions of the future with professional and
ethical responsibility
Ability to make a difference about the project
managements, entrepreneurships, quality
controls
An understanding of current/contemporary
issues and impact of engineering solutions in
legal and ethical levels
X
X
1: Az (Little), 2. Kısmi (Partial), 3. Tam (Full)
Düzenleyen (Prepared by)
Tarih (Date)
Bahar Delibaș
23/1/2017
İmza (Signature)
Download