Calendário Acadêmico - 2024.1

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

  1. Introdução à Compilação de Programas:
    • Conceitos básicos e funcionalidades;
    • Partes de um compilador;
    • Fases de Análise e Síntese.
  2. 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.
  3. 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.
  4. 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.
  5. Representação intermediária
  6. Ambientes de execução, organização de memória
  7. Geração de código
  8. 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

  1. THAIN, Douglas. Introduction to Compilers and Language Design. 2a Ed, 2020, http://compilerbook.org.
  2. AHO, A. et al. Compiladores: princípios, técnicas e ferramentas. 2a Ed., Addison-Wesley, 2008. Livro do “Dragão”.
  3. LEVINE, John. Lex & Bison. O’Reilly. 2009.

Complementar

  1. APPEL, A. W. Modern Compiler Implementation in Java. Cambridge University Press, Cambridge, 1997.
  2. LOUDEN, K. C. Compiladores: Princípios e Práticas. Editora Thompson Pioneira, 1a Ed., 2004.
  3. RICARTE, I. Introdução à Compilação, Editora Campus, 2008.
  4. MITCHELL, J. Foundation for Programming Languages. Foundations of Computing, MIT Press, 1996.
  5. WINSKEL, G. The Formal Semantics of Programming Languages: An Introduction. Foundations of Computing series. MIT Press, Cambridge, Massachusetts, February 1993.
  6. 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.