Compiler Design


A compiler translates the code written in one language to some other language without changing the meaning of the program. It is also expected that a compiler should make the target code efficient and optimized in terms of time and space.

Compiler design principles provide an in-depth view of translation and optimization process. Compiler design covers basic translation mechanism and error detection & recovery. It includes lexical, syntax, and semantic analysis as front end, and code generation and optimization as back-end.

Topics for this course

41 Lessons


Introduction of Compiler Design
Compiler Construction Tools
Phases of a Compiler
Symbol Table in Compiler
Static and Dynamic Scoping
C++ Program to implement Symbol Table
Error detection and Recovery in Compiler
Error Handling in Compiler Design
Language Processors: Assembler, Compiler and Interpreter
Generation of Programming Languages

Lexical Analysis?

In computer science, lexical analysis, lexing or tokenization is the process of converting a sequence of characters into a sequence of tokens. A program that performs lexical analysis may be termed a lexer, tokenizer, or scanner, although scanner is also a term for the first stage of a lexer.

Syntax Analysis?

Syntax Analysis is a second phase of the compiler design process in which the given input string is checked for the confirmation of rules and structure of the formal grammar. It analyses the syntactical structure and checks if the given input is in the correct syntax of the programming language or not.

Syntax Directed Translation?

Syntax-directed translation refers to a method of compiler implementation where the source language translation is completely driven by the parser. A common method of syntax-directed translation is translating a string into a sequence of actions by attaching one such action to each rule of a grammar.

Code Generation and Optimization :?

Optimization is the final stage of compiler, though it is optional. This is a program transformation technique, which tries to improve the code by making it consume less resources (i.e. CPU, Memory) and deliver high speed.

Runtime Environments?

In computer programming, a runtime system, also called runtime environment, primarily implements portions of an execution model. This is not to be confused with the runtime lifecycle phase of a program, during which the runtime system is in operation.

Enrolment validity: Lifetime