Skip to main content

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

  1. Students improve their language learning and design skills. Students earn programming techniques and optimization skills.
  2. the student will be able to synthesize finite automata with specific properties.
  3. the student will be able to apply transformation between multiple representations of finite automata.
  4. 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

ActivityQuantityDuration (h)Total Workload
Course Duration (Including Exam Week)16348
Out of Class Study Period16696
Midterm122
Quiz000
Assignment21530
Practice11212
Final133

Course Schedule

WeekSubjectPreparation
1Introduction1-7
2Lexical Analysis9-50
3Syntax Analysis53-78
4Syntax Analysis79-113
5Scopes and Symbol Tables113-120
6Interpretation and Type Checking120-145
7Intermediate-Code Generation147-178
8Ara SınavAra Sınav
9Machine-Code Generation and Register Allocation179-206
10Function Calls209-230
11Analysis and optimization231-256
12Analysis and optimization244-256
13Memory Management257-280
14Bootstrapping a compiler and Set notation and concepts281-298
15Project
16Final SınavıFinal Sınavı