Pular para conteúdo

Trabalho de Compiladores

Este documento descreve a proposta geral da disciplina FGA0003 – Compiladores 1 (Engenharia de Software, UnB/FCTE, 2026/2), detalhando a metodologia PBL adotada, a formação de equipes, os critérios de avaliação, os pontos de controle (P1/P2) e a entrevista final de entrega do projeto.

Objetivo da disciplina

A disciplina tem como objetivo capacitar os estudantes nos conceitos fundamentais da construção de compiladores, promovendo, por meio da metodologia Problem Based Learning (PBL), o desenvolvimento efetivo de um compilador ao longo do semestre. A proposta busca integrar teoria e prática, estimulando autonomia e colaboração no processo de aprendizagem, com foco nos níveis de Aplicação, Análise e Criação da Taxonomia de Bloom.

Metodologia (PBL)

A disciplina combina aulas expositivas com Problem Based Learning:

  • Segundas-feiras — aulas teóricas, com fundamentação conceitual sobre autômatos, análise léxica, análise sintática, análise semântica, geração e otimização de código.
  • Quartas-feiras — aulas práticas, orientadas a problemas, nas quais os grupos desenvolvem incrementalmente um compilador funcional.

Essa abordagem coloca o estudante em participação contínua em todas as etapas do projeto: planejamento, desenvolvimento, teste e apresentação do compilador.

Horário: segundas e quartas, das 14h às 15h50, nas salas S2/I9.

Formação de equipes

As equipes foram formadas por escolha livre dos próprios estudantes, com grupos de 5 a 6 integrantes cada. O cronograma da disciplina faz referência a equipes numeradas de 1 a 16, indicando esse total de grupos na turma.

Critérios de avaliação

A avaliação é contínua e baseada na seguinte fórmula de Nota Final (NF):

NF = (P1 + 2×P2 + 3×T + 4×C) / 10

Onde:

Componente Significa
P1 Ponto de controle 1 — avalia a evolução do projeto em um primeiro momento do semestre
P2 Ponto de controle 2 — avalia a evolução do projeto em um segundo momento do semestre
T Nota da entrevista de entrega do projeto final, cobrindo aspectos técnicos, decisões de projeto e dificuldades superadas
C Avaliação do compilador construído: correção, funcionalidades entregues, organização do código e documentação

Critérios para aprovação:

  • Frequência mínima de 75% nas aulas;
  • Nota Final (NF) maior ou igual a 5,0.

A presença de todos os membros da equipe é obrigatória durante as apresentações/entrevistas de P1, P2 e T.

Entregas (P1 e P2)

Os pontos de controle avaliam a evolução do compilador em dois momentos do semestre, por meio de formulário preenchido pelo líder da equipe e uma apresentação (ou entrevista, com sorteio de membros) em sala.

P1

  • Prazo do formulário: até 23/09/2026, 23h59
  • Apresentação/entrevista em sala: 28/09/2026 (equipes 1 a 8) e 30/09/2026 (equipes 9 a 16)
  • O não envio do formulário no prazo resulta em nota 0 (zero) para a equipe em P1.

P2

  • Prazo do formulário: a partir de 04/11/2026, 23h59
  • Apresentação/entrevista em sala: 09/11/2026 (equipes 16 a 9) e 11/11/2026 (equipes 8 a 1)
  • O não envio do formulário no prazo resulta em nota 0 (zero) para a equipe em P2.

Em ambos os pontos de controle, caso a avaliação seja por entrevista, alguns membros da equipe são sorteados para representá-la no horário designado.

Entrevista final (T)

A entrevista de entrega do projeto final ocorre ao término do semestre, nos dias 30/11/2026 e 02/12/2026. Nela, a equipe apresenta:

  • Os principais aspectos técnicos do compilador desenvolvido;
  • As decisões de projeto tomadas ao longo do desenvolvimento;
  • As dificuldades superadas durante a implementação.

O professor pode direcionar as perguntas a um grupo específico entre os membros presentes.

Cronograma resumido

Mês Marco
Agosto Apresentação da disciplina, fundamentos de autômatos e análise léxica, início do projeto (fase léxica)
Setembro Análise sintática, parser, AST e tabela de símbolos, P1 (28–30/09)
Outubro Análise semântica, geração de código intermediário, otimização e geração de código final
Novembro P2 (09–11/11), implementação final do compilador
Dezembro Entrevistas finais (T) (30/11 e 02/12), semana de revisão de menção

Consulte o plano de ensino completo para o cronograma detalhado, dia a dia, incluindo feriados e semana universitária.

Referências

Bibliografia básica:

  • TREMBLAY, J. P.; SORENSON, P. G. Theory and Practice of Compiler Writing. BS Publications, 2008.
  • WIRTH, N. Compiler Construction. Zurich, 2005.
  • SINGH, R. Design and Implementation of Compiler. New Age International, 2009.

Bibliografia complementar:

  • SUBRAMANIAN, K.G. Formal Models, Languages and Applications. WorldScientific, 2006.
  • HERRERA HERNÁNDEZ, E.; CASA NOVAS HERRERO, N. Compilación II. Editorial Félix Varela, 2006.
  • MARTIN-VIDE, C. Scientific Applications of Language Methods. Imperial College Press, 2010.
  • KOWALTOWSKI, T. Implementação de Linguagens de Programação. Editora Guanabara, 1983.