Chapter 1:Introduction to the course

What will we learn in the course?

. So. here comes the big question finally. What is it that you are going to learn in this course. Any guess ?

. How high level languages are implemented to generate machine code. Complete structure of compilers and how various parts are composed together to get a compiler

. Course has theoretical and practical components. Both are needed in implementing programming languages. The focus will be on practical application of the theory.

. Emphasis will be on algorithms and data structures rather than proofs of correctness of algorithms.

. Theory of lexical analysis, parsing, type checking, runtime system, code generation, optimization (without going too deep into the proofs etc.)

. Techniques for developing lexical analyzers, parsers, type checkers, run time systems, code generator, optimization. Use of tools and specifications for developing various parts of compilers