Upon completion of the course, students will be able to:
- understand programming languages through the process of syntactic analysis.
- study algorithms and data structures through the implementation of each compilation phase.
- understand the actual code running on a processor versus code being programmed at a higher level.
- understand the architecture of the computer that executes the code through the study of the execution mechanisms of the final code.
- study Instruction Set Architecture through optimizations and final code generation.
- design and implement a complete compiler, from its first to its last phase, and even as a team, so that the ability to collaborate is also developed.