50 likes | 197 Views
Programming Languages & Translators (CE 359) Fall 2013 Prof. Dr : Ahmed El Nahass Lecture 1. COMPUTER ENGINEERING. FACULTY OF ENGINEERING. Course Objective. Read a language specification, generate a lexer and parser for that language, and defend your design and implementation choices;
E N D
Programming Languages & Translators (CE 359)Fall 2013Prof. Dr: Ahmed El NahassLecture 1 COMPUTER ENGINEERING • FACULTY OF ENGINEERING Prof.Dr Ahmed El Nahassfall2013 CE359
Course Objective • Read a language specification, generate a lexer and parser for that language, and defend your design and implementation choices; • Create intermediate code for a language; • Implement a type checker and symbol tables; and, • Implement simple interpreters/virtual machines. Prof.Dr Ahmed El Nahassfall2013 CE359
Course Contents • Introduction • Regular Expressions • Lexing: scanners, finite automata • Parsing: grammars, top-down parsing, bottom-up parsing • Abstract Syntax Trees • Type checking • Symbol tables • Interpreters and Virtual Machines • Executing ASTs • Executing bytecode JIT compilers, binary translation • Survey of domain-specific languages • Programming Paradigms: functional , logic , scripting) Prof.Dr Ahmed El Nahassfall2013 CE359
Instructor: Prof. Dr: Ahmed El Nahass • Lectures: Thursday10:30 2:30 • Office Hours: Thursday 8:30 10:30 Teaching Assistance: Eng. NehalFathi • Tutorial: Tuesday 2:30 4:00 • Office: E621 Prof.Dr Ahmed El Nahassfall2013 CE359
Recommended Textbook: • Michael L. Scott." Programming Language Pragmatics", 3rd Ed., Morgan Kaufmann, 2009. Supplementary Reference: • A.W. Appel, "Modern compiler implementation in Java", 2nd Ed. • http://patricklam.ca/plt Prof.Dr Ahmed El Nahassfall2013 CE359