Institute of Science and Technology · Computer Science and Engineering (%30 English) · Doctorate
ECTS: 7.5 T+P+L: 3+0+0 Departmental Elective
Coordinator: Doç. Dr. Farzad KIANI
Course Objective
Aim of this course is to present mathematical methods concerning design of programming languages and to make tools possible for acceptance conditions of a program which is written in a particular program language
Course Content
Basic mathematics for languages,Regular expression and sets,Deterministic and nondeterministic automata,gramer and languages,Regular languages,context free languages, recovering gramer and normal forms, pushdown automata ,Turing machine,Top-down parsing, classification of languages, LL(k) Languages and LR(k) languages, Shif-Reduce and Recursive-decent parsing methods
Course Learning Outcomes
- Students improve their language learning and design skills. Students earn programming techniques and optimization skills.
- the student will be able to synthesize finite automata with specific properties.
- the student will be able to apply transformation between multiple representations of finite automata.
- the student will be able to define the definitions of machine models formally.
Core Area Distribution
(48) Computing%70 (52) Engineering and Engineering Trades%30
Teaching Methods
ExpressionQuestion-AnswerDiscussionCase StudySelf studyProblem Solving
Assessment & Evaluation
HomeworkProject / DesignTesting (Essay / Tests: True-Falls, multiple-choice, short answer, matching)
ECTS / Workload
| Activity | Quantity | Duration (h) | Total Workload |
|---|---|---|---|
| Course Duration (Including Exam Week) | 16 | 3 | 48 |
| Out of Class Study Period | 16 | 6 | 96 |
| Midterm | 1 | 2 | 2 |
| Quiz | 0 | 0 | 0 |
| Assignment | 2 | 15 | 30 |
| Practice | 1 | 12 | 12 |
| Final | 1 | 3 | 3 |
Course Schedule
| Week | Subject | Preparation |
|---|---|---|
| 1 | Introduction | 1-7 |
| 2 | Lexical Analysis | 9-50 |
| 3 | Syntax Analysis | 53-78 |
| 4 | Syntax Analysis | 79-113 |
| 5 | Scopes and Symbol Tables | 113-120 |
| 6 | Interpretation and Type Checking | 120-145 |
| 7 | Intermediate-Code Generation | 147-178 |
| 8 | Ara Sınav | Ara Sınav |
| 9 | Machine-Code Generation and Register Allocation | 179-206 |
| 10 | Function Calls | 209-230 |
| 11 | Analysis and optimization | 231-256 |
| 12 | Analysis and optimization | 244-256 |
| 13 | Memory Management | 257-280 |
| 14 | Bootstrapping a compiler and Set notation and concepts | 281-298 |
| 15 | Project | |
| 16 | Final Sınavı | Final Sınavı |


