COMPUTER ENGINEERING
Bachelor TR-NQF-HE: Level 6 QF-EHEA: First Cycle EQF-LLL: Level 6

Ders Genel Tanıtım Bilgileri

Course Code: 1410002002
Ders İsmi: Compiler Design
Ders Yarıyılı: Spring
Ders Kredileri:
Theoretical Practical Credit ECTS
3 0 3 5
Language of instruction: TR
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: No
Type of course: Bölüm Seçmeli
Course Level:
Bachelor TR-NQF-HE:6. Master`s Degree QF-EHEA:First Cycle EQF-LLL:6. Master`s Degree
Mode of Delivery: Face to face
Course Coordinator : Dr.Öğr.Üyesi Recep DURANAY
Course Lecturer(s): Assoc. Prof. Fatih KOÇAN
Course Assistants:

Dersin Amaç ve İçeriği

Course Objectives: The aim of this course is to provide students with knowledge and skills in compiler design and development.
Course Content: This course introduces students to methods used to translate from one formal language to another. The course explains the steps used from the browser step to parser design and development. In addition, the course provides information on semantic analysis and local and global compiler optimization. During the course, each student is expected to design a simple compiler using the lex and yacc software tools.

Learning Outcomes

The students who have succeeded in this course;
Learning Outcomes
1 - Knowledge
Theoretical - Conceptual
1) Basic information about compiler steps; ability to use automata theory and knowledge of formal languages.
2 - Skills
Cognitive - Practical
1) Ability to design and develop compilers and browser modules.
3 - Competences
Communication and Social Competence
Learning Competence
1) 3) Ability for compilers to choose case-appropriate parser strategies. Knowledge of alternative methods (top-down or bottom-up, etc.)
2) Knowledge of current technologies required for compiler design and implementation and the ability to use these technologies effectively.
Field Specific Competence
Competence to Work Independently and Take Responsibility

Ders Akış Planı

Week Subject Related Preparation
1) What is a compiler? 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) Target Languages 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) Formal Grammars 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) Intermediate Representations 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) Lexical Analysis 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) SEPARATORS III (DOWN-UP SEPARATES) 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) Error Handling 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) Midterm
9) Parser Generators 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) Semantic Checking 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) Code Generation 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) Code Optimization 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) A Complete Compiler for VSL 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) Evaluating progrmming projects interactively 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) Final Exam
16) Final

Sources

Course Notes / Textbooks: Levine, J. (John Levine). (2009). Flex and Bison. O'Reilly.
An Introduction to Compiling Techniques : A First Course using ANSI C, LEX and YACC.
References: 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 Outcomes
1) PO 1.1) Sufficient knowledge in mathematics, science and computer engineering
2) PO 1.2) Ability to apply theoretical and applied knowledge in mathematics, science and computer engineering for modeling and solving engineering problems.
3) PO 2.1) Identifying complex engineering problems
4) PO 2.2) Defining complex engineering problems
5) PO 2.3) Formulating complex engineering problems
6) PO 2.4) Ability to solve complex engineering problems
7) PO 2.5) Ability to choose and apply appropriate analysis and modeling methods
8) PO 3.1) Ability to design a complex system, process, device or product to meet specific requirements under realistic constraints and conditions.
9) PO 3.2) Ability to apply modern design methods under realistic constraints and conditions for a complex system, process, device or product
10) PO 4.1) Developing modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering applications
11) PO 4.2) Ability to select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering applications
12) PO 4.3) Ability to use information technologies effectively.
13) PO 5.1) Examination of complex engineering problems or discipline-specific research topics, designing experiments
14) PO 5.2) Examination of complex engineering problems or discipline-specific research topics, experimentation
15) PO 5.3 ) Analysis of complex engineering problems or discipline-specific research topics, data collection
16) PO 5.4) Analyzing the results of complex engineering problems or discipline-specific research topics
17) PO 5.5) Examining and interpreting complex engineering problems or discipline-specific research topics

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

No Effect 1 Lowest 2 Low 3 Average 4 High 5 Highest
           
Program Outcomes Level of Contribution
1) PO 1.1) Sufficient knowledge in mathematics, science and computer engineering
2) PO 1.2) Ability to apply theoretical and applied knowledge in mathematics, science and computer engineering for modeling and solving engineering problems.
3) PO 2.1) Identifying complex engineering problems
4) PO 2.2) Defining complex engineering problems
5) PO 2.3) Formulating complex engineering problems
6) PO 2.4) Ability to solve complex engineering problems
7) PO 2.5) Ability to choose and apply appropriate analysis and modeling methods
8) PO 3.1) Ability to design a complex system, process, device or product to meet specific requirements under realistic constraints and conditions.
9) PO 3.2) Ability to apply modern design methods under realistic constraints and conditions for a complex system, process, device or product
10) PO 4.1) Developing modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering applications
11) PO 4.2) Ability to select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering applications 5
12) PO 4.3) Ability to use information technologies effectively.
13) PO 5.1) Examination of complex engineering problems or discipline-specific research topics, designing experiments
14) PO 5.2) Examination of complex engineering problems or discipline-specific research topics, experimentation
15) PO 5.3 ) Analysis of complex engineering problems or discipline-specific research topics, data collection
16) PO 5.4) Analyzing the results of complex engineering problems or discipline-specific research topics
17) PO 5.5) Examining and interpreting complex engineering problems or discipline-specific research topics

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

Bireysel çalışma ve ödevi
Homework

Ö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)
Homework

Assessment & Grading

Semester Requirements Number of Activities Level of Contribution
Attendance 10 % 10
Midterms 2 % 50
Semester Final Exam 1 % 40
total % 100
PERCENTAGE OF SEMESTER WORK % 60
PERCENTAGE OF FINAL WORK % 40
total % 100

İş Yükü ve AKTS Kredisi Hesaplaması

Activities Number of Activities Duration (Hours) Workload
Course Hours 14 3 42
Study Hours Out of Class 30 3 90
Midterms 2 4 8
Total Workload 140