CENG486 Compiler DesignIstanbul Okan UniversityDegree Programs Computer Engineering (English)General Information For StudentsDiploma SupplementErasmus Policy StatementNational Qualifications
Computer Engineering (English)
Bachelor TR-NQF-HE: Level 6 QF-EHEA: First Cycle EQF-LLL: Level 6

General course introduction information

Course Code: CENG486
Course Name: Compiler Design
Course Semester: Fall
Course Credits:
Theoretical Practical Credit ECTS
3 0 3 7
Language of instruction: EN
Course Requisites:
Does the Course Require Work Experience?: No
Type of course: Department Elective
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 : Prof. Dr. BEKİR TEVFİK AKGÜN
Course Lecturer(s):
Course Assistants:

Course Objective and Content

Course Objectives: The aim of this course is to provide students with knowledge and skills in compiler design and development.
Course Content: This course explains to students the methods used to translate from a formal language to another formal language. The course explains the steps used from the browser step to the 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 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 knowledge of automat theory and formal languages.
2) Ability to design and develop compiler browser modules.
2 - Skills
Cognitive - Practical
1) Ability to choose case-appropriate parser strategies for compilers.
3 - Competences
Communication and Social Competence
Learning Competence
1) 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

Lesson Plan

Week Subject Related Preparation
1) INTRODUCTION TO COMPILERS Course Notes
2) SCANNERS I (REGULAR LANGUAGES, WORD SPECIFICATIONS) Course Notes
3) SCANNERS II (RE à NFA à DFA à minDFA à REALIZATION) Course Notes
4) SEPARATORS I (CFGs, SEGREGATION TREE, ABOVE-DOWN) Course notes
5) SEPARATORS II (RECONSTRUCTIVE LANDING, PREDICTIVE SEPARATION) Course notes
6) SEPARATORS III (FOLLOW-UP SEPARATORS) Course notes
7) SEPARATORS IV (SLIDE-DOWNLOAD, SLR, LR (K) SEPARATION.) Course notes
8) Midterm Exam Course notes
9) CONTEXT-SENSITIVE ANALYSIS Course Notes
10) INTERMEDIATE REPRESENTATIONS Course notes
11) ABSTRACTION PROCEDURE Course notes
12) ABSTRACTION PROCEDURE Course notes
13) CODE FORMING, OPTIMIZATIONS I (LOCAL OPTIMIZATIONS) Course note
14) OPTIMIZATIONS II (GLOBAL OPTIMIZATIONS) Course notes
15) Final Exam Course Notes

Sources

Course Notes / Textbooks: A.V. AHO, M.S. LAM, R. SETHI, J.D. ULLMAN, “COMPILERS: PRINCIPLES, TECHNIQUES AND TOOLS, 2nd ED., ADDISON WESLEY, 2006.

K.D. COOPER, L. TORCZON, “ENGINEERING A COMPILER”, 2nd ED., MORGAN KAUFMANN, 2012.
References: COADSYS ÜZERİNDE SUNUM SLAYTLARI

Course-Program Learning Outcome Relationship

Learning Outcomes

1

2

3

4

Program Outcomes
1) Sufficient knowledge in mathematics, science and engineering related to their branches; the ability to apply theoretical and practical knowledge in these areas to model and solve engineering problems.
2) The ability to identify, formulate, and solve complex engineering problems; selecting and applying appropriate analysis and modeling methods for this purpose.
3) The ability to design a complex system, process, device or product under realistic constraints and conditions to meet specific requirements; the ability to apply modern design methods for this purpose. (Realistic constraints and conditions include such issues as economy, environmental issues, sustainability, manufacturability, ethics, health, safety, social and political issues, according to the nature of design.)
4) Ability to develop, select and use modern techniques and tools necessary for engineering applications; ability to use information technologies effectively.
5) Ability to design experiments, conduct experiments, collect data, analyze and interpret results for examination of engineering problems.
6) The ability to work effectively in disciplinary and multidisciplinary teams; individual work skill.
7) Effective communication skills in Turkish oral and written communication; at least one foreign language knowledge.
8) Awareness of the need for lifelong learning; access to knowledge, ability to follow developments in science and technology, and constant self-renewal.
9) Professional and ethical responsibility.
10) Information on project management and practices in business life such as risk management and change management; awareness about entrepreneurship, innovation and sustainable development.
11) Information on the effects of engineering applications on health, environment and safety in the universal and social dimensions and the problems of the times; awareness of the legal consequences of engineering solutions.

Course - Learning Outcome Relationship

No Effect 1 Lowest 2 Low 3 Average 4 High 5 Highest
           
Program Outcomes Level of Contribution
1) Sufficient knowledge in mathematics, science and engineering related to their branches; the ability to apply theoretical and practical knowledge in these areas to model and solve engineering problems.
2) The ability to identify, formulate, and solve complex engineering problems; selecting and applying appropriate analysis and modeling methods for this purpose.
3) The ability to design a complex system, process, device or product under realistic constraints and conditions to meet specific requirements; the ability to apply modern design methods for this purpose. (Realistic constraints and conditions include such issues as economy, environmental issues, sustainability, manufacturability, ethics, health, safety, social and political issues, according to the nature of design.)
4) Ability to develop, select and use modern techniques and tools necessary for engineering applications; ability to use information technologies effectively.
5) Ability to design experiments, conduct experiments, collect data, analyze and interpret results for examination of engineering problems.
6) The ability to work effectively in disciplinary and multidisciplinary teams; individual work skill.
7) Effective communication skills in Turkish oral and written communication; at least one foreign language knowledge.
8) Awareness of the need for lifelong learning; access to knowledge, ability to follow developments in science and technology, and constant self-renewal.
9) Professional and ethical responsibility.
10) Information on project management and practices in business life such as risk management and change management; awareness about entrepreneurship, innovation and sustainable development.
11) Information on the effects of engineering applications on health, environment and safety in the universal and social dimensions and the problems of the times; awareness of the legal consequences of engineering solutions.

Learning Activity and Teaching Methods

Expression
Brainstorming/ Six tihnking hats
Individual study and homework
Lesson
Q&A / Discussion

Assessment & Grading Methods and Criteria

Written Exam (Open-ended questions, multiple choice, true-false, matching, fill in the blanks, sequencing)
Homework

Assessment & Grading

Semester Requirements Number of Activities Level of Contribution
Homework Assignments 1 % 20
Midterms 1 % 30
Final 1 % 50
total % 100
PERCENTAGE OF SEMESTER WORK % 50
PERCENTAGE OF FINAL WORK % 50
total % 100

Workload and ECTS Credit Grading

Activities Number of Activities Duration (Hours) Workload
Course Hours 14 3 42
Study Hours Out of Class 14 3 42
Homework Assignments 1 30 30
Midterms 1 40 40
Final 1 50 50
Total Workload 204