Compiladores/Pautas 2014-2015/Pauta do Projecto: Entrega Intermédia
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
A entrega intermédia pode ser revista até à data da entrega final do projecto.
Critérios de Avaliação
LER COM ATENÇÃO
A avaliação da entrega intermédia considera a execução de intervenções em várias 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 intermédia. Projectos que não apresentem alterações relativamente ao conteúdo inicial do repositório CVS ou relativamente à entrega inicial não serão considerados.
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 intermédia.
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 6 valores (dos 20 disponíveis para o projecto) associados a esta entrega:
Se o projecto compilar, poderão ser atribuídos mais 5 valores (desenvolvimento do compilador), distribuídos como se segue:
|
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 o nome apropriado).
- A criação de novos nós não apresenta quaisquer dificuldades (são classes muito simples)
- O código dos métodos do visitor xml_writer corresponde a uma simples impressão dos atributos dos nós, através de uma travessia da árvore que formam e que os contém.
- O compilador é obrigatoriamente desenvolvido em C++.
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: 4 valores
Não definição dos nós para regras BYACC em avaliação (ver acima) ou não utilização de nós definidos para a escrita dessas acções: 2 valores
- A 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) terá uma penalização máxima de 1 valor
- Não utilização de qualquer material obrigatório: 6 valores (e considera-se projecto não realizado)
DEBUG
O despiste de problemas em especificações Flex pode ser realizado de forma simples utilizando os métodos descritos em How to Debug a Flex Specification.
O visitor xml_writer foi concebido para produzir uma representação textual hierárquica (árvore XML) correspondente ao programa em compilação. É muito útil para inspeccionar a contrução da árvore de nós por parte do BYACC, permitindo, inclusivamente, a apresentação gráfica.
Legenda
A entrega intermédia vale 6 valores em 20.
Resultados de compilação: (a disponibilizar)
Os alunos são fortemente encorajados a compreender/verificar/corrigir os problemas reportados. Alunos cujo projecto não compile (e apenas esses), podem solicitar correcção de versão nova a partir do CVS (desconto aplicável). Não se considerarão outras alterações na avaliação intermédia.
A atribuição de pontos (positivos e negativos) é como já foi anunciado (resumido abaixo).
Existem 6 factores correspondentes a pontos positivos:
- CVS: existência do projecto com estrutura correcta no repositório, incluindo presença de relatórios: 0.50 val.
- Compilação: capacidade de produzir o executável 'pwn': 0.50 val. (este factor condiciona a atribuição dos restantes)
- Léxico: qualidade e nível de desenvolvimento da especificação do analisador lexical: 1.50 val.
- Sintaxe: qualidade e nível de desenvolvimento da especificação do analisador sintáctico: 1.00 val.
- Nós: qualidade e nível de desenvolvimento da família de nós da árvore produzida pelo analisador sintáctico: 1.00 val.
- Semântica: qualidade e nível de desenvolvimento dos geradores: 1.50 val.
Existem 2 factores correspondentes a pontos negativos:
- Remoção da funcionalidade existente no Compact (até -4.00 val.)
- Não implementação das acções do analisador sintáctico e correspondentes nós, etc. (até -2.00 val.)
- Utilização de C em lugar de C++ (ver pormenores nos critérios) (até -1.00 val.)
- Não utilização do material obrigatório (at -6.00 valores)
Quaisquer dúvidas ou sugestões, relativas a esta informação, devem ser enviadas ao responsável pela disciplina.
As questões relativas às colunas "Problemas" devem ser resolvidas quanto antes (nos horários de dúvidas ou, sendo possível, por correio electrónico).
Pauta
<runphp> echo<<<___EOT___
</tbody>
___EOT___; </runphp>