MAC5750


Nome da disciplina: Teoria e Construção de Compiladores
Versão: 8
Créditos: 8
Carga horária estudo: 4h
Carga horária prática: 2h
Carga horária teórica: 4h
Carga Horária Total: 120h
Duração: 12 semana(s)

Objetivos
O objetivo principal desse curso é introduzir o aluno aos conceitos básicos de compilação, bem como às várias técnicas utilizadas para a implementação de compiladores. Como objetivo secundário, o aluno tem a oportunidade de se envolver em um projeto de desenvolvimento de software de dimensão média, obrigando-o a se familiarizar com técnicas de desenvolvimento e de documentação de software.

Justificativas
Compilação é uma área de fundamental importância prática e muito profícua de pesquisa em Ciência da Computação. Esta disciplina propicia ao aluno de pós-graduação a introdução aos conceitos básicos da disciplina que o permitam aprofundar-se numa eventual pesquisa na área.

Conteúdo
1. O processo de compilação. 2. Implementação de analisadores sintáticos. 3. Recuperação de erros sintáticos. 4. Tabela de símbolos; estrutura de blocos. 5. A análise de contexto e geração de código objeto. 6. Expressões aritméticas e booleanas. 7. Comandos repetitivos e de seleção. 8. Variáveis indexadas. 9. Procedimentos e recursividade. 10. Otimização e alocação de registradores

Avaliação


Bibliografia
1) A.W. Appel, Modern Compiler Construction in Java2, Cambridge University Press, 2002. 2) J.P. Tremblay and P.G. Sorenson, The Theory and Practice of Compiler Writing, McGraw-Hill, New York, 1985. 3) A.V. Aho, R. Lam, M.S. Sethi and J.D. Ullman, Compilers: Principles, Techniques and Tools (2nd Edition), Pearson Education Ltd, Edimburgh Gate, 2006. 4) V.W. Setzer and I.S. Homem de Melo, A Construção de um Compilador, vol. 1 e 2, II Escola de Computação, Campinas, 1981