Compiladores/Pautas 2014-2015/Pauta do Projecto: Entrega "zero"
From Wiki**3
< Compiladores | Pautas 2014-2015
AVISOS - Avaliação em Época Normal |
---|
Esclarecimento de dúvidas:
|
Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Compiladores):
|
Processo de avaliação (ver informação completa em Avaliação do Projecto):
|
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 CVS |
Apenas se consideram para avaliação os projectos existentes no repositório CVS oficial.
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
Critérios de Avaliação
LER COM ATENÇÃO
A avaliação da entrega inicial considera a execução de intervenções em duas regiões do código do compilador em desenvolvimento, assim como a gestão do projecto correspondente.
A avaliação é realizada sobre a versão existente no CVS no final do prazo para a entrega inicial. Projectos que não apresentem alterações relativamente ao conteúdo inicial do repositório CVS não serão considerados.
Considerando que é um passo crucial na concepção do projecto, a não realização desta entrega conduz automaticamente a uma classificação de 0 (zero) na componente de avaliação relativa ao Projecto e consequente exclusão da avaliação da disciplina no ano lectivo 2014/2015.
Advertem-se os alunos sobre a consulta de colegas de anos anteriores. Estas consultas podem ser positivas, mas comportam algum risco, pois o processo e critérios de avaliação podem ter mudado. Além disso, a proficiência do colega pode majorar negativamente o resultado da avaliação em curso. Não são admitidas quaisquer justificações com base na história da disciplina.
Estas condições são aplicáveis à data da entrega inicial.
Em caso de dúvidas suscitadas por qualquer elemento neste texto, no projecto, ou na disciplina em geral, os alunos são fortemente encorajados a consultar o corpo docente.
VALORAÇÕES
Existem 2 valores (dos 20 disponíveis para o projecto) associados a esta entrega:
- gestão do projecto: 0.5 valores
- projecto com a estrutura correcta no repositório CVS: 0.25 valores (i.e., código que não apresente a estrutura canónica de um compilador desenvolvido com a CDK é considerado sem a estrutura correcta -- consultar estas páginas sobre o desenvolvimento do projecto com base no repositório CVS)
- projecto compila e produz compilador "pwn" ("pwn", com letras minúsculas: variações correspondem a "não compilação"): 0.25 valores
Se o projecto compilar, poderão ser atribuídos mais 1.5 valores (desenvolvimento do compilador), distribuídos como se segue:
- Classes dos nós do compilador (completo): 1.0 valores
- Reutilização dos nós da CDK (simples ajuste do Compact)
- Definição ou extensão de elementos existentes (simples ajuste do Compact)
- Definição de novas declarações/definições (variáveis/funções) (completo)
- Definição de novas instruções (completo)
- Definição de novas expressões (completo)
- Definição de outros elementos (completo)
- Sugere-se (por simplicidade de gestão do código) a separação das várias classes de nós em namespaces coerentes (à la Compact)
- Não é necessário criar as regras no BYACC para criar os nós (se for feito, é conveniente para o progresso do projecto, mas não é avaliado nesta entrega)
- Métodos dos "visitors" (completo): 0.5 valores
- Reutilização de métodos já definidos (simples ajuste do Compact)
- Definição de todos os métodos do_X (correspondentes ao nó da class X) em todos os visitors (simples extensão do Compact)
- Métodos novos podem estar vazios, mas devem existir
- Métodos correspondentes a acções semelhantes às existentes devem ser modelados nos existentes (exemplo, do_program_node -> do_function_definition_node) (mesmo que não modificados numa primeira instância)
- A presença de implementações de semântica no postfix_writer (tabela de símbolos, validação de tipos, etc.) não é penalizada, mas não será avaliada nesta entrega
PENALIZAÇÕES
Existem penalizações relativas à (deficiente) execução do projecto.
São considerados os seguintes aspectos preliminares:
- A linguagem do projecto contém a linguagem Simple, pelo que não há razão para não utilizar completamente o compilador Simple, eventualmente com pequenas alterações.
- A semântica da linguagem do projecto contém a da linguagem Simple, pelo que a implementação de alguns aspectos da linguagem do projecto não requer qualquer reimplementação relativamente ao Simple.
- O compilador Simple foi fornecido completamente funcional, assim como a versão inicial do compilador do projecto no respositório CVS (igual ao Simple e apenas alterado, para ter um nome apropriado).
- A criação de novos nós não apresenta quaisquer dificuldades (são classes muito simples).
- Os métodos (na sua maioria, vazios) dos "visitors" são simples paralelos com as classes dos nós e os que não estão vazios são quase 100% reutilizáveis na nova linguagem.
- O compilador é obrigatoriamente desenvolvido em C++, fazendo-se uso do material de apoio.
Considerando os aspectos 1. a 6., são aplicadas as seguintes penalizações:
- Destruição de funcionalidade do compilador Simple sem substituição por funcionalidade equivalente do compilador do projecto: 2 valores
- Utilização de funções e estruturas C, quando existem alternativas directas C++ (malloc em lugar de new, por exemplo; strcmp, etc. em lugar da classe std::string; e outras): penalização máxima de 1 valor
- Não utilização de qualquer material obrigatório ou não satisfação dos critérios mínimos: 2 valores e considera-se entrega não realizada (implica exclusão da avaliação)
Legenda
A entrega "zero" vale 2 valores em 20.
Os alunos são encorajados a compreender/verificar/corrigir os problemas reportados, especialmente nos casos em que exista anotação explícita na pauta.
Pauta
<runphp> echo<<<___EOT___
<colgroup width="44"></colgroup> <colgroup span="2" width="43"></colgroup> <colgroup width="48"></colgroup> <colgroup width="109"></colgroup> <colgroup width="48"></colgroup> <colgroup width="109"></colgroup> <colgroup width="48"></colgroup> <colgroup width="109"></colgroup> <colgroup span="2" width="48"></colgroup> <colgroup width="112"></colgroup> <colgroup width="122"></colgroup> <tbody> </tbody>Nota | Total | Pontos Positivos | Pontos Negativos | Obs. | ||||||||
CVS | Compilação | Nós, Métodos de Visita | Simple | Bad code | ||||||||
Grupo | 2.00 | 2.00 | 0.25 | Problemas | 0.25 | Problemas | 1.50 | Problemas | 4.00 | 1.00 | Problemas | |
01 | NA | 0.00 | ||||||||||
02 | NA | 0.00 | ||||||||||
03 | NA | 0.00 | ||||||||||
04 | NA | 0.00 | ||||||||||
05 | NA | 0.00 | ||||||||||
06 | NA | 0.00 | ||||||||||
07 | NA | 0.00 | ||||||||||
08 | NA | 0.00 | ||||||||||
09 | NA | 0.00 | ||||||||||
10 | NA | 0.00 | ||||||||||
11 | NA | 0.00 | ||||||||||
12 | NA | 0.00 | ||||||||||
13 | NA | 0.00 | ||||||||||
14 | NA | 0.00 | ||||||||||
15 | NA | 0.00 | ||||||||||
16 | NA | 0.00 | ||||||||||
17 | NA | 0.00 | ||||||||||
18 | NA | 0.00 | ||||||||||
19 | NA | 0.00 | ||||||||||
20 | NA | 0.00 | ||||||||||
21 | NA | 0.00 | ||||||||||
22 | NA | 0.00 | ||||||||||
23 | NA | 0.00 | ||||||||||
24 | NA | 0.00 | ||||||||||
25 | NA | 0.00 | ||||||||||
26 | NA | 0.00 | ||||||||||
27 | NA | 0.00 | ||||||||||
28 | NA | 0.00 | ||||||||||
29 | NA | 0.00 | ||||||||||
30 | NA | 0.00 | ||||||||||
31 | NA | 0.00 | ||||||||||
32 | NA | 0.00 | ||||||||||
33 | NA | 0.00 | ||||||||||
35 | NA | 0.00 | ||||||||||
36 | NA | 0.00 | ||||||||||
37 | NA | 0.00 | ||||||||||
38 | NA | 0.00 | ||||||||||
39 | NA | 0.00 | ||||||||||
40 | NA | 0.00 | ||||||||||
41 | NA | 0.00 | ||||||||||
42 | NA | 0.00 | ||||||||||
43 | NA | 0.00 | ||||||||||
44 | NA | 0.00 | ||||||||||
45 | NA | 0.00 | ||||||||||
46 | NA | 0.00 | ||||||||||
47 | NA | 0.00 | ||||||||||
48 | NA | 0.00 | ||||||||||
49 | NA | 0.00 | ||||||||||
50 | NA | 0.00 | ||||||||||
51 | NA | 0.00 | ||||||||||
52 | NA | 0.00 | ||||||||||
53 | NA | 0.00 | ||||||||||
54 | NA | 0.00 | ||||||||||
55 | NA | 0.00 | ||||||||||
56 | NA | 0.00 | ||||||||||
57 | NA | 0.00 | ||||||||||
58 | NA | 0.00 | ||||||||||
59 | NA | 0.00 | ||||||||||
60 | NA | 0.00 | ||||||||||
61 | NA | 0.00 | ||||||||||
62 | NA | 0.00 | ||||||||||
63 | NA | 0.00 | ||||||||||
64 | NA | 0.00 | ||||||||||
65 | NA | 0.00 | ||||||||||
66 | NA | 0.00 | ||||||||||
67 | NA | 0.00 | ||||||||||
68 | NA | 0.00 | ||||||||||
69 | NA | 0.00 | ||||||||||
70 | NA | 0.00 | ||||||||||
71 | NA | 0.00 | ||||||||||
73 | NA | 0.00 | ||||||||||
74 | NA | 0.00 | ||||||||||
75 | NA | 0.00 | ||||||||||
76 | NA | 0.00 | ||||||||||
77 | NA | 0.00 | ||||||||||
78 | NA | 0.00 | ||||||||||
79 | NA | 0.00 | ||||||||||
81 | NA | 0.00 | ||||||||||
82 | NA | 0.00 | ||||||||||
83 | NA | 0.00 | ||||||||||
84 | NA | 0.00 | ||||||||||
85 | NA | 0.00 | ||||||||||
86 | NA | 0.00 | ||||||||||
87 | NA | 0.00 | ||||||||||
89 | NA | 0.00 | ||||||||||
90 | NA | 0.00 | ||||||||||
91 | NA | 0.00 | ||||||||||
93 | NA | 0.00 | ||||||||||
94 | NA | 0.00 | ||||||||||
96 | NA | 0.00 |
___EOT___; </runphp>