Offered:
Pre-requisite: CSE321, CSE331, CSE340
Theory and Practice; An introduction to compiler and interpreter design, with emphasis on practical solutions using compiler writing tools such as Yacc in UNIX, and the C programming language, Topics covered include: lexical scanners, context free languages and pushdown automata, recursive descent parsing, bottom up parsing, attributed grammars, symbol table design, run time memory allocation, machine language, code generation and optimization.
a. Introduce the fundamentals concepts of computer language processing system, different phases of a compiler, and analysis-synthesis model of compilation
b. Teach students regular expressions for recognizing tokens, building symbol table, and transforming the regular expressions to finite state machines for developing lexical analyzer.
c. Explain context-free-grammars and parsers for syntax analysis to validate string of tokens of a programming language.
d. Teach students to construct syntax-directed definitions, translation schemes, annotated parse trees, dependency graph for semantic analysis and type checking.
e. Help students to understand intermediate codes, and code optimization techniques for efficient compiler design.
f. Help students to learn about how to generate codes for target programming language considering memory, instruction cost, available registers and run-time memory allocation.
1. Principles of Compiler Design, Alfred V. Aho, Jeffrey D. Ullman, 1977, 2nd, Addison-Wesley, 0-32 1-4868 1 – 1
2. Compiler Construction: Principles and Practice, Kenneth C. Louden, 1997, 1st, Cengage Learning, 13: 978-0534939724
Text and Reference Books
# | Description | Weight | Edit |
---|