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.
Why Take This Course? 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.
This course will cover the following topics:
### Front End
- Compiler Phases
- Scanners & Parsers
- Semantic Analysis
- Syntax Directed Translation
- Control Structures and Back-patching
- Function and Procedure Calls & Runtime Organization
- Register Allocation & Instruction Selection
- Code layout and Code Generation
- Brief Introduction to Code Optimization
MOOCs stand for Massive Open Online Courses. These arefree online courses from universities around the world (eg. StanfordHarvardMIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you. They also have student discussion forums, homework/assignments, and online quizzes or exams.