Information
| Unit | FACULTY OF ENGINEERING | 
| COMPUTER ENGINEERING PR. (ENGLISH) | |
| Code | CEN408 | 
| Name | Compilers | 
| Term | 2023-2024 Academic Year | 
| Semester | 8. Semester | 
| Duration (T+A) | 3-0 (T-A) (17 Week) | 
| ECTS | 6 ECTS | 
| National Credit | 3 National Credit | 
| Teaching Language | İngilizce | 
| Level | Lisans Dersi | 
| Type | Normal | 
| Label | E Elective | 
| Mode of study | Yüz Yüze Öğretim | 
| Catalog Information Coordinator | Prof. Dr. SELMA AYŞE ÖZEL | 
| Course Instructor | 
                                             The current term course schedule has not been prepared yet. 
                                             | 
                                
Course Goal / Objective
The objective of this course is to read and write grammars for programming languages; learn how compiler systems work.
Course Content
Read and write grammar, lexical analysis, parsing, semantic analysis, symbol tables, run time analysis, code generation, optimization, compiler implementation for a simple languge
Course Precondition
Basic concepts of programming languages should be known.
Resources
Aho, A., Lam, M.S., Sethi, R., Ullman, J.D., Compilers: Principles, Techniques, and Tools, 2nd Edition, Addison Wesley, 2006.
Notes
Douglas Thain, Introduction to Compilers and Language Design, 2nd edition, 2020.
Course Learning Outcomes
| Order | Course Learning Outcomes | 
|---|---|
| LO01 | To be able to read a grammar developed for a programming language. | 
| LO02 | To be able to write a grammar for a new programming language. | 
| LO03 | Explains the main components of a compiler. | 
| LO04 | Explains how a compiler runs. | 
Relation with Program Learning Outcome
| Order | Type | Program Learning Outcomes | Level | 
|---|---|---|---|
| PLO01 | Bilgi - Kuramsal, Olgusal | Has capability in the fields of mathematics, science and computer that form the foundations of engineering | 3 | 
| PLO02 | Bilgi - Kuramsal, Olgusal | Identifies, formulates, and solves engineering problems, selects and applies appropriate analytical methods and modeling techniques, | |
| PLO03 | Bilgi - Kuramsal, Olgusal | Analyzes a system, its component, or process and designs under realistic constraints to meet the desired requirements,gains the ability to apply the methods of modern design accordingly. | 4 | 
| PLO04 | Bilgi - Kuramsal, Olgusal | Ability to use modern techniques and tools necessary for engineering practice and information technologies effectively. | 2 | 
| PLO05 | Bilgi - Kuramsal, Olgusal | Ability to design and to conduct experiments, to collect data, to analyze and to interpret results | |
| PLO06 | Bilgi - Kuramsal, Olgusal | Has ability to work effectively as an individual and in multi-disciplinary teams, take sresponsibility and builds self-confidence | 3 | 
| PLO07 | Beceriler - Bilişsel, Uygulamalı | Can access information,gains the ability to do resource research and uses information resources | 5 | 
| PLO08 | Beceriler - Bilişsel, Uygulamalı | Awareness of the requirement of lifelong learning, to follow developments in science and technology and continuous self-renewal ability | 4 | 
| PLO09 | Yetkinlikler - Bağımsız Çalışabilme ve Sorumluluk Alabilme Yetkinliği | Ability to communicate effectively orally and in writing, and to read and understand technical publications in at least one foreign language | 3 | 
| PLO10 | Yetkinlikler - Öğrenme Yetkinliği | Professional and ethical responsibility, | |
| PLO11 | Yetkinlikler - Öğrenme Yetkinliği | Awareness about project management, workplace practices, employee health, environmental and occupational safety, and the legal implications of engineering applications, | |
| PLO12 | Yetkinlikler - Öğrenme Yetkinliği | Becomes aware of universal and social effects of engineering solutions and applications, entrepreneurship and innovation, and knowledge of contemporary issues | 
Week Plan
| Week | Topic | Preparation | Methods | 
|---|---|---|---|
| 1 | Introduction to compiler systems | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 2 | Lexical analysis: Regular expressions, Lex | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 3 | Lexical analysis: Automata | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 4 | Context Free Grammars | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 5 | Top Down, and LL Parsing | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 6 | Bottom Up, SLR, LR Parsing | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 7 | Yacc system | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 8 | Mid-Term Exam | Reading the lecture notes | Ölçme Yöntemleri: Yazılı Sınav  | 
                                
| 9 | Abstract Sytntax Tree | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 10 | Type chechking | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 11 | Assembly Language | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 12 | Code generation | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 13 | Runtine | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 14 | Optimization | Reading the lecture notes | Öğretim Yöntemleri: Anlatım, Soru-Cevap  | 
                                
| 15 | Project presentations | Reading the lecture notes, preparation of Project presentation. | Öğretim Yöntemleri: Grup Çalışması, Proje Temelli Öğrenme  | 
                                
| 16 | Preparation to final exam | Reading the lecture notes | Öğretim Yöntemleri: Soru-Cevap  | 
                                
| 17 | Term Exams | Reading the lecture notes | Ölçme Yöntemleri: Yazılı Sınav  | 
                                
Student Workload - ECTS
| Works | Number | Time (Hour) | Workload (Hour) | 
|---|---|---|---|
| Course Related Works | |||
| Class Time (Exam weeks are excluded) | 14 | 3 | 42 | 
| Out of Class Study (Preliminary Work, Practice) | 14 | 5 | 70 | 
| Assesment Related Works | |||
| Homeworks, Projects, Others | 1 | 12 | 12 | 
| Mid-term Exams (Written, Oral, etc.) | 1 | 12 | 12 | 
| Final Exam | 1 | 20 | 20 | 
| Total Workload (Hour) | 156 | ||
| Total Workload / 25 (h) | 6,24 | ||
| ECTS | 6 ECTS | ||