Faculty of Engineering - Ain Shams University, Home
Design of Compilers
What Will Learn?
-
Course AimsThe aim of this course is to provide students with the basic knowledge of organization and operation of a compiler. Students Get familiar with all the necessary tools and practical experience to design and program an actual compiler. Build a scanner for a programming language. Build a parser for a programming language.
-
Course Goals
- Decent Work and Economic Growth
- Industry, Innovation and Infrastructure
- Sustainable Cities and Communities
Requirements
CSE243
Description
-
English Description
Fundamental concepts in automata theory and formal languages: Grammar, deterministic and nondeterministic finite automata, regular expression, formal language, pushdown automaton, Turing machines, the halting problem, diagonalization and reduction, decidability, Rice’s theorem, P, NP, and NP-completeness. Systems software, compilers, interpreters. Byte-codes. Lexical analysis: interface with input, parser and symbol table, token, lexeme and patterns. Syntax analysis: context-free grammars, ambiguity, precedence, top-down parsing, recursive descent parsing, transformation on the grammars, predictive parsing. Bottom up parsing, operator precedence grammars, LR parsers. Regular expressions and semantics. Error detection, type-checking and run-time environments. Code generation, code optimizations, code improvement techniques. -
Arabic Description
Fundamental concepts in automata theory and formal languages: Grammar, deterministic and nondeterministic finite automata, regular expression, formal language, pushdown automaton, Turing machines, the halting problem, diagonalization and reduction, decidability, Rice’s theorem, P, NP, and NP-completeness. Systems software, compilers, interpreters. Byte-codes. Lexical analysis: interface with input, parser and symbol table, token, lexeme and patterns. Syntax analysis: context-free grammars, ambiguity, precedence, top-down parsing, recursive descent parsing, transformation on the grammars, predictive parsing. Bottom up parsing, operator precedence grammars, LR parsers. Regular expressions and semantics. Error detection, type-checking and run-time environments. Code generation, code optimizations, code improvement techniques.
-
DepartmentComputer and Systems Engineering
-
Credit Hours3
-
GradesTotal ( 100 ) = Midterm (25) + tr.Major Assessment (30 = tr.Industry 0% , tr.Project 20% , tr.Self_learning 0% , tr.Seminar 15% ) + tr.Minor Assessment (5) + Exam Grade (40)
-
HoursLecture Hours: 2, Tutorial Hours: 2, Lab Hours: 0
-
Required SWL125
-
Equivalent ECTS5
- Compiler Construction: Principles and Practice, Kenneth C. Louden, 2019, PWS Publishing Company , ISBN 0-534-93972-4 - Compiler Construction: Principles and Practice, Kenneth C. Louden, 2019, PWS Publishing Company , ISBN 0-534-93972-4.