ECTS - Language Processors
Language Processors (CMPE424) Course Detail
| Course Name | Course Code | Season | Lecture Hours | Application Hours | Lab Hours | Credit | ECTS |
|---|---|---|---|---|---|---|---|
| Language Processors | CMPE424 | Area Elective | 3 | 0 | 0 | 3 | 5 |
| Pre-requisite Course(s) |
|---|
| N/A |
| Course Language | English |
|---|---|
| Course Type | Technical Elective Courses |
| Course Level | Bachelor’s Degree (First Cycle) |
| Mode of Delivery | Face To Face |
| Learning and Teaching Strategies | Lecture. |
| Course Lecturer(s) |
|
| Course Objectives | The objective of this course is to provide necessary skills in developing a language processor as applied to compiler generation. |
| Course Learning Outcomes |
The students who succeeded in this course;
|
| Course Content | Fundamental concepts of compilation and interpretation; single-pass and multiple-pass language translators; lexical analyzer; top-down parsing, and LL(1) grammars; recursive descent method; bottom-up parsing; shift reduce technique; operator precedence grammar, LR(0) and SLR(1) grammars; syntax directed translation; error processing and recovery; s |
Weekly Subjects and Releated Preparation Studies
| Week | Subjects | Preparation |
|---|---|---|
| 1 | Introduction to Compiling | Chapter 1 (main text) |
| 2 | A Simple One-Pass Compiler | Chapter 2 |
| 3 | Lexical Analysis | Chapter 3 |
| 4 | Syntax Analysis | Chapter 4 |
| 5 | Syntax Directed Translation | Chapter 5 |
| 6 | Syntax Directed Translation | Chapter 5 |
| 7 | Type Checking | Chapter 6 |
| 8 | Run-time Environments | Chapter 7 |
| 9 | Run-time Environments | Chapter 7 |
| 10 | Run-time Environments | Chapter 7 |
| 11 | Intermediate Code Generation | Chapter 8 |
| 12 | Code Generation | Chapter 9 |
| 13 | Code Generation | Chapter 9 |
| 14 | Code Optimization | Chapter 10 |
Sources
| Course Book | 1. Alfred V. Aho, Monica S. Lam, Ravi Sethi, Jeffrey D. Ullman, Compilers: Principles, Techniques, and Tools (2nd Edition), 2006, ISBN: 0321486811. (Dragon Book) |
|---|---|
| Other Sources | 2. 1. Steven Muchnick, Advanced Compiler Design and Implementation, 1997, Morgan Kaufmann Publishers, ISBN:1-55860-320-4. |
| 3. 2. Doug Brown, John Levine, Tony Mason, UNIX Programming Tools: Lex & Yacc, O’Reilly, 1992. | |
| 4. 3. Dick Grune, Henri E. Bal, Ceriel J.H. Jacobs, and Koen Langendoen VU University Amsterdam, Amsterdam, The Netherlands. John Wiley & Sons, Ltd., pp. 736 + xviii; ISBN 0471976970, 2000. | |
| 5. 4. http://dinosaur.compilertools.net/yacc/. | |
| 6. 5. Andrew W. Appel, Jens Palsberg, “Modern Compiler Implementation in Java (2nd edition)”, Cambridge Univ. Press, ISBN-13: 9780521820608, 2002. |
Evaluation System
| Requirements | Number | Percentage of Grade |
|---|---|---|
| Attendance/Participation | - | - |
| Laboratory | - | - |
| Application | - | - |
| Field Work | - | - |
| Special Course Internship | - | - |
| Quizzes/Studio Critics | - | - |
| Homework Assignments | 2 | 15 |
| Presentation | - | - |
| Project | 1 | 30 |
| Report | - | - |
| Seminar | - | - |
| Midterms Exams/Midterms Jury | 1 | 25 |
| Final Exam/Final Jury | 1 | 30 |
| Toplam | 5 | 100 |
| Percentage of Semester Work | 70 |
|---|---|
| Percentage of Final Work | 30 |
| Total | 100 |
Course Category
| Core Courses | |
|---|---|
| Major Area Courses | |
| Supportive Courses | X |
| Media and Managment Skills Courses | |
| Transferable Skill Courses |
The Relation Between Course Learning Competencies and Program Qualifications
| # | Program Qualifications / Competencies | Level of Contribution | ||||
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 1 | Gains adequate knowledge in mathematics, science, and subjects specific to the software engineering discipline; acquires the ability to apply theoretical and practical knowledge of these areas to complex engineering problems. | X | ||||
| 2 | Gains the ability to identify, define, formulate, and solve complex engineering problems; selects and applies proper analysis and modeling techniques for this purpose. | X | ||||
| 3 | Develops the ability to design a complex system, process, device, or product under realistic constraints and conditions to meet specific requirements; applies modern design methods for this purpose. | X | ||||
| 4 | Demonstrates the ability to select, and utilize modern techniques and tools essential for the analysis and determination of complex problems in software engineering applications; uses information technologies effectively. | X | ||||
| 5 | Develops the ability to design experiments, gather data, analyze, and interpret results for the investigation of complex engineering problems or research topics specific to the software engineering discipline. | |||||
| 6 | Demonstrates the ability to work effectively both individually and in disciplinary and interdisciplinary teams in fields related to software engineering. | |||||
| 7 | Demonstrates the ability to communicate effectively in Turkish, both orally and in writing; to write effective reports and understand written reports, to prepare design and production reports, to deliver effective presentations, and to give and receive clear and understandable instructions. | |||||
| 8 | Gains knowledge of at least one foreign language; acquires the ability to write effective reports and understand written reports, prepare design and production reports, deliver effective presentations, and give and receive clear and understandable instructions. | |||||
| 9 | Acquires an awareness of the necessity of lifelong learning; the ability to access information, follow developments in science and technology, and continuously improve oneself. | |||||
| 10 | Acts in accordance with ethical principles and possesses knowledge of professional and ethical responsibilities. | |||||
| 11 | Knows the standards used in software engineering practices. | |||||
| 12 | Knows about business practices such as project management, risk management and change management. | |||||
| 13 | Gains awareness about entrepreneurship and innovation. | |||||
| 14 | Gains knowledge on sustainable development. | |||||
| 15 | Has knowledge about the universal and societal impacts of software engineering practices on health, environment, and safety, as well as the contemporary issues reflected in the field of engineering. | |||||
| 16 | Acquires awareness of the legal consequences of engineering solutions. | |||||
| 17 | Applies knowledge and skills in identifying user needs, developing user-focused solutions and improving user experience. | X | ||||
| 18 | Gains the ability to apply engineering approaches in the development of software systems by carrying out analysis, design, implementation, verification, validation, and maintenance processes. | X | ||||
ECTS/Workload Table
| Activities | Number | Duration (Hours) | Total Workload |
|---|---|---|---|
| Course Hours (Including Exam Week: 16 x Total Hours) | 16 | 3 | 48 |
| Laboratory | |||
| Application | |||
| Special Course Internship | |||
| Field Work | |||
| Study Hours Out of Class | 16 | 2 | 32 |
| Presentation/Seminar Prepration | |||
| Project | 1 | 15 | 15 |
| Report | |||
| Homework Assignments | 2 | 5 | 10 |
| Quizzes/Studio Critics | |||
| Prepration of Midterm Exams/Midterm Jury | 1 | 10 | 10 |
| Prepration of Final Exams/Final Jury | 1 | 15 | 15 |
| Total Workload | 130 | ||
