Compiler Design
- Programming languages are used to instruct user ideas to the computer
- computer can't understand natural language, i.e. it can understand only binary / machine language (0's and 1's)
- language translator is a system software that converts a code from one form of a language to another form of language
Example: Compilers, Interpreters and Assemblers
- Compiler is a program which takes one language (source program) as input and translates it into an equivalent another language(target program)
"Only a few people will ever write their own compiler. so why bother?"
- It provides better understanding of and appreciation for programming languages
- An experienced computer professional knows about high-level programming and hardware. Both are connected by the compiler
- Understanding the techniques of compilation is essential for a better understanding of how programming languages and computer interact together
- Many applications contain little languages for customization and flexible control. So, compiler techniques are essential to design and implement these extension languages in proper manner
- Compiler techniques are useful for reading, manipulating and writing data
How is it Linked with other Subjects of Engineering?
- Automata Theory, the subject in which we study Formal Languages and Automata Theory, plays a major role in Compiler Design
- In the Process of Lexical Analysis, programs are broken into tokens which are recognized through automata theory
- Automata and Compiler Design is a subject which is a combination of Formal Languages and Compiler Design