Ementa
Análise e Síntese. Análise léxica, sintática e semântica. Geração de código intermediário. Otimização de código intermediário. Geração e otimização de código objeto.
Programa
- Introdução à Compilação de Programas:
- Conceitos básicos e funcionalidades;
- Partes de um compilador;
- Fases de Análise e Síntese.
- Análise Léxica:
- Conceitos básicos (tokens, lexemas, etc.);
- Especificação e reconhecimento de linguagens regulares;
- Implementação e geração de analisadores léxicos.
- Análise Sintática:
- Conceitos básicos (derivação, árvores sintáticas, ambiguidade, etc.);
- Especificação e reconhecimento de linguagens livres de contexto;
- Análise LL e LR;
- Implementação e geração de analisadores sintáticos;
- Árvores sintáticas abstratas.
- Análise semântica:
- Conceitos básicos; Sistemas de tipos;
- Implementação de verificação de tipos;
- Tabela de símbolos e resolução de nomes.
- Representação intermediária
- Ambientes de execução, organização de memória
- Geração de código
- Otimização de código
Material de Apoio
- Tutorial: Git & GitHub Basics (no GitHub);
- Tutorial Git-it: https://github.com/jlord/git-it-electron/releases
Bibliografia
Básica
- THAIN, Douglas. Introduction to Compilers and Language Design. 2a Ed, 2020, http://compilerbook.org.
- AHO, A. et al. Compiladores: princípios, técnicas e ferramentas. 2a Ed., Addison-Wesley, 2008. Livro do “Dragão”.
- LEVINE, John. Lex & Bison. O’Reilly. 2009.
Complementar
- APPEL, A. W. Modern Compiler Implementation in Java. Cambridge University Press, Cambridge, 1997.
- LOUDEN, K. C. Compiladores: Princípios e Práticas. Editora Thompson Pioneira, 1a Ed., 2004.
- RICARTE, I. Introdução à Compilação, Editora Campus, 2008.
- MITCHELL, J. Foundation for Programming Languages. Foundations of Computing, MIT Press, 1996.
- WINSKEL, G. The Formal Semantics of Programming Languages: An Introduction. Foundations of Computing series. MIT Press, Cambridge, Massachusetts, February 1993.
- SCOTT, M.L. Programming Language Pragmatics, 3rd ed.
Recursos Educacionais Abertos (REA)
See LICENSE for more information. This is an organization for academic activities. See Authors.