COMPUTER ENGINEERING
Qualification Awarded Program Süresi Toplam Kredi (AKTS) Öğretim Şekli Yeterliliğin Düzeyi ve Öğrenme Alanı
Bachelor's (First Cycle) Degree 4 240 FULL TIME TYÇ, TR-NQF-HE, EQF-LLL, ISCED (2011):Level 6
QF-EHEA:First Cycle
TR-NQF-HE, ISCED (1997-2013): 48,52

Ders Genel Tanıtım Bilgileri

Course Code: 1410002002
Ders İsmi: Compiler Design
Ders Yarıyılı: Spring
Ders Kredileri:
Theoretical Practical Labs Credit ECTS
3 0 0 3 5
Language of instruction: TR
Ders Koşulu:
Ders İş Deneyimini Gerektiriyor mu?: No
Other Recommended Topics for the Course: NONE
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 : Assoc. Prof. Fatih KOÇAN
Course Lecturer(s):

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) 1.1 Sufficient knowledge of subjects such as mathematics and science
2) 1.2 Ability to apply theoretical and applied knowledge in mathematics, science and computer engineering for modeling and solving engineering problems.
3) 1.3 Ability to use theoretical and applied knowledge in fields such as mathematics and science in complex engineering problems.
4) 2.1 Ability to identify, define, formulate and solve complex engineering problems
5) 2.2 Ability to select and apply appropriate analysis and modeling methods for this purpose
6) 3.1 Ability to design a complex system, process, device or product to meet specific requirements under realistic constraints and conditions
7) 3.2 Ability to apply modern design methods for this purpose
8) 4.1 Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering applications.
9) 4.2 Ability to use information technologies effectively
10) 5.1 Ability to design experiments to examine complex engineering problems or discipline-specific research issues
11) 5.2 Ability to conduct experiments to examine complex engineering problems or discipline-specific research topics
12) 5.3 Ability to collect data to examine complex engineering problems or discipline-specific research topics
13) 5.4 Ability to analyze and interpret experimental results for the study of complex engineering problems or discipline-specific research issues
14) 6.1 Ability to work individually within the discipline
15) 6.2 Ability to work effectively in interdisciplinary teams
16) 6.3 Ability to work effectively in multidisciplinary teams
17) 7.1 Ability to communicate effectively and make presentations both verbally and in Turkish
18) 7.2 Knowledge of at least one foreign language
19) 7.3 Ability to write effective reports and understand written reports
20) 7.4 Ability to prepare design and production reports
21) 7.5 Ability to give and receive clear and understandable instructions
22) 8.1 Awareness of the necessity of lifelong learning
23) 8.2 The ability to access information, follow developments in science and technology and constantly renew oneself
24) 9.1 Acting in accordance with ethical principles, awareness of professional and ethical responsibility
25) 9.2 Information about standards used in engineering applications
26) 10.1 Knowledge of business practices such as project management, risk management and change management
27) 10.2 Awareness about entrepreneurship, innovation
28) 10.3 Information about sustainable development
29) 11.1 Information about the effects of engineering practices on health, environment and security at universal and social dimensions and the problems of the age reflected in the field of engineering
30) 11.2 Awareness of the legal consequences of engineering solutions
31) 12.1 Having knowledge about discrete mathematics

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

No Effect 1 Lowest 2 Low 3 Average 4 High 5 Highest
           
Program Outcomes Level of Contribution
1) 1.1 Sufficient knowledge of subjects such as mathematics and science
2) 1.2 Ability to apply theoretical and applied knowledge in mathematics, science and computer engineering for modeling and solving engineering problems.
3) 1.3 Ability to use theoretical and applied knowledge in fields such as mathematics and science in complex engineering problems.
4) 2.1 Ability to identify, define, formulate and solve complex engineering problems
5) 2.2 Ability to select and apply appropriate analysis and modeling methods for this purpose
6) 3.1 Ability to design a complex system, process, device or product to meet specific requirements under realistic constraints and conditions
7) 3.2 Ability to apply modern design methods for this purpose
8) 4.1 Ability to develop, select and use modern techniques and tools necessary for the analysis and solution of complex problems encountered in engineering applications.
9) 4.2 Ability to use information technologies effectively 4
10) 5.1 Ability to design experiments to examine complex engineering problems or discipline-specific research issues
11) 5.2 Ability to conduct experiments to examine complex engineering problems or discipline-specific research topics
12) 5.3 Ability to collect data to examine complex engineering problems or discipline-specific research topics 4
13) 5.4 Ability to analyze and interpret experimental results for the study of complex engineering problems or discipline-specific research issues
14) 6.1 Ability to work individually within the discipline
15) 6.2 Ability to work effectively in interdisciplinary teams
16) 6.3 Ability to work effectively in multidisciplinary teams
17) 7.1 Ability to communicate effectively and make presentations both verbally and in Turkish
18) 7.2 Knowledge of at least one foreign language
19) 7.3 Ability to write effective reports and understand written reports
20) 7.4 Ability to prepare design and production reports
21) 7.5 Ability to give and receive clear and understandable instructions
22) 8.1 Awareness of the necessity of lifelong learning
23) 8.2 The ability to access information, follow developments in science and technology and constantly renew oneself
24) 9.1 Acting in accordance with ethical principles, awareness of professional and ethical responsibility
25) 9.2 Information about standards used in engineering applications
26) 10.1 Knowledge of business practices such as project management, risk management and change management
27) 10.2 Awareness about entrepreneurship, innovation
28) 10.3 Information about sustainable development
29) 11.1 Information about the effects of engineering practices on health, environment and security at universal and social dimensions and the problems of the age reflected in the field of engineering
30) 11.2 Awareness of the legal consequences of engineering solutions
31) 12.1 Having knowledge about discrete mathematics

Öğ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