.. Compilers documentation master file, created by sphinx-quickstart on Fri Feb 25 20:42:07 2022. You can adapt this file completely to your liking, but it should at least contain the root `toctree` directive. :index:`Welcome to Compilers! (Spring 2024)` ============================================ :index:`Summary` ---------------- The interaction person-machine is often performed by using programming languages. Behind each language there are translation and interpretation tools that enable the program execution. The most known examples of this type of tools are the compilers and interpreters. This course will study the structure of these tools to learn how to analyse the language, translate the statements into instructions of the target machine and optimize the code for a more efficient execution. The course will also cover language translators beyond the world of compilers. A significant part of the course will be devoted to a project designing a compiler from a simple language to the assembly language of a virtual machine :index:`Syllabus` ----------------- * Introduction * Lexical analysis * Syntax analysis * Syntax trees * Semantic Analysis * Code generation * Code optimization :index:`Lab` ------------ See the material and documentation for the `Lab classes and project `_. :index:`Bibliography` --------------------- * :doc:`Slides and material of the course `. * Alfred V. Aho, Monica S. Lam, Ravi Sethi, and Jeffrey D. Ullman, `Compilers: Principles, Techniques, & Tools `_. Second edition, Addison-Wesley, 2007. * Michael L. Scott, `Programming Language Pragmatics `_. Second edition, Morgan Kaufmann, 2006. .. .. toctree:: :maxdepth: 2 :caption: Contents: .. toctree:: :hidden: teoria/index .. Indices and tables ================== * :ref:`genindex` * :ref:`modindex` * :ref:`search`