The objective of this course is to learn the theory and practice behind building automatic translators (compilers) for higher level programming languages and to engineer and build key phases of a compiler in Java or C++ for a small language.
Class Deals by MOOC List - Click here and see Udacity's Active Discounts, Deals, and Promo Codes.
Take this course if you need to develop the skills necessary to work on create compilers and similar tools for modern operating systems and devices.
What You Will Learn
Lesson 1
Front End
- Compiler Phases
- Scanners & Parsers
- Semantic Analysis
Lesson 2
Middle End
- Syntax Directed Translation
- Control Structures and Back-patching
- Function and Procedure Calls & Runtime Organization
Lesson 3
Back-end
- Register Allocation & Instruction Selection
- Code layout and Code Generation
- Brief Introduction to Code Optimization
Prerequisites and Requirements
Good knowledge of data structures and algorithms, good programming skills and ability to write sizeable software in Java or C++. Should be able to work in Linux environment.