Compiladores/Pautas 2022-2023/Pauta do Projecto: Entrega Final

From Wiki**3

< Compiladores‎ | Pautas 2022-2023
AVISOS - Avaliação em Época Normal

Esclarecimento de dúvidas:

  • Consultar sempre o corpo docente atempadamente: presencialmente ou através do endereço oficial da disciplina [1].
  • Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
  • Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.

Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Compiladores):

  • O material de apoio é de uso obrigatório e não pode ser alterado.
  • Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.

Processo de avaliação (ver informação completa em Avaliação do Projecto):

  • Datas: 2023/05/15 17:00 (inicial); 2023/05/30 17:00 (intercalar); 2023/06/16 17:00 (final); 2023/06/16-19 (teste prático).
  • Todas as entregas são cruciais para o bom desenvolvimento do projecto, sendo obrigatórias: a não realização de uma entrega implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina.
  • Verificar atempadamente (até 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de avaliação, incluindo a capacidade de acesso ao repositório.
  • Apenas se consideram para avaliação os projectos existentes no repositório oficial. Apenas se considera para avaliação o ramo 'main'.
  • Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.
  • A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
  • Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação em curso.
Material de Uso Obrigatório
As bibliotecas CDK e RTS de apoio ao desenvolvimento do projecto são de uso obrigatório:
A máquina virtual, fornecida para desenvolvimento do projecto, já contém todo o material de apoio.
Uso Obrigatório: Repositório GIT
Apenas se consideram para avaliação os projectos existentes no repositório GIT oficial. Apenas se considera para avaliação o ramo main.

Trabalhos não presentes no repositório no final do prazo têm classificação 0 (zero) (não são aceites outras formas de entrega). Não são admitidas justificações para atrasos em sincronizações do repositório. A indisponibilidade temporária do repositório, desde que inferior a 24 horas, não justifica atrasos na submissão de um trabalho.

Prazo de Revisão

PAUTA FECHADA

Ver anúncio (Fénix).

Critérios de Avaliação

A entrega final é obrigatória.

São considerados os das entregas anteriores (adaptados).

Legenda

A entrega final vale 12 valores em 20 (7 qualidade; 5 automáticos).

  • Qualidade (7 valores): análise lexical (0.75) + análise sintáctica (0.75) + nós (AST) (0.75) + análise semântica e geração de código (0.75) + avaliação global (0.50) + repositório e compilação (0.50). Os pesos são relativos ao total 4 (i.e., o valor final multiplica por 7/4).
  • Testes automáticos (5 valores).

Os alunos são encorajados a compreender/verificar os problemas reportados.

Quaisquer dúvidas ou sugestões, relativas a esta informação, devem ser enviadas ao responsável pela disciplina ou esclarecidas nos horários de dúvidas.

Recorda-se que a classificação global do projecto não se limita à soma das classificações das várias entregas: a classificação final é ainda influenciada pela classificação do teste prático. Este teste é obrigatório e eliminatório (i.e., a classificação deve ser maior que zero).

Descrição dos problemas assinalados na pauta

Problemas na análise lexical

  • .* - uso indevido do padrão
  • chars - definição indevida (não existem na linguagem)
  • comments - problemas com comentários (em excesso ou em falta)
  • doubles - problemas com vírgula flutuante (definições incompletas)
  • ints - problemas com inteiros (definições incompletas ou excessivas)
  • keywords - problemas com palavras chave (a mais ou a menos)
  • strings - problemas na definição de strings (composição, concatenação indevida, etc.)
  • [outras anotações] - casos específicos (contactar professor responsável)

Problemas na análise sintáctica

  • conflicts - conflitos no analisador LALR(1)
  • exprs - problemas nas expressões (em falta ou com inclusão de casos errados)
  • lvals - problemas na definição de left-values (e.g. ausência de definições ou incompletas)
  • precs - problemas na definição de precedências (tipicamente, em excesso ou sem correspondência com o manual)
  • strings - problemas na definção de cadeias de caracteres
  • syntax - problemas na definição da gramática (relativamente ao manual de referência)
  • [outras anotações] - casos específicos (contactar professor responsável)

Problemas nos nós

  • [outras anotações] - casos específicos (contactar professor responsável)

Problemas na análise semântica e na geração de código

  • symbol - problemas na definição dos símbolos (atributos em excesso ou em falta)
  • stack - problemas na definição do stack das funções
  • types - problemas na verificação de tipos
  • postfix - problemas na geração de código
  • [outras anotações] - casos específicos (contactar professor responsável)

Outros problemas

  • empty methods - métodos vazios nos visitors (não deviam ser vazios)
  • types - problemas com o visitor de verificação de tipos
  • [outras anotações] - casos específicos (contactar professor responsável)

Pauta

Aqui: (ver Fénix)