(→Prazo de Revisão) |
(→Legenda) |
||
(2 intermediate revisions by the same user not shown) | |||
Line 34: | Line 34: | ||
* '''gestão do projecto: 0.5 valores''' | * '''gestão do projecto: 0.5 valores''' | ||
** projecto com a estrutura correcta no repositório GIT: 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 GIT) | ** projecto com a estrutura correcta no repositório GIT: 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 GIT) | ||
− | ** projecto compila e produz compilador " | + | ** projecto compila e produz compilador "til" ("til", 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: | '''Se o projecto compilar''', poderão ser atribuídos mais '''1.5 valores''' (desenvolvimento do compilador), distribuídos como se segue: | ||
Line 52: | Line 52: | ||
** Definição de todos os métodos do_X (correspondentes ao nó da class X) em todos os visitors (simples extensão do Simple) | ** Definição de todos os métodos do_X (correspondentes ao nó da class X) em todos os visitors (simples extensão do Simple) | ||
** Métodos novos podem estar vazios, mas devem existir | ** Métodos novos podem estar vazios, mas devem existir | ||
− | ** Métodos correspondentes a acções semelhantes às existentes devem ser modelados nos existentes | + | ** Métodos correspondentes a acções semelhantes às existentes devem ser modelados nos existentes (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 | ** 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 | ||
|} | |} | ||
Line 91: | Line 91: | ||
* dups: cópia de código que já está disponível na CDK (não devem existir estas cópias: devem ser usadas as classes da CDK) | * dups: cópia de código que já está disponível na CDK (não devem existir estas cópias: devem ser usadas as classes da CDK) | ||
* pointer: este nó não deve existir | * pointer: este nó não deve existir | ||
− | * | + | * loop/while: problemas vários com o nó de iteração |
* lvals: más utilizações de left-values (um left-value é a designação de um endereço de escrita) | * lvals: más utilizações de left-values (um left-value é a designação de um endereço de escrita) | ||
* index: problemas com os nós de indexação (e.g. não são lvalues, faltam expressões) | * index: problemas com os nós de indexação (e.g. não são lvalues, faltam expressões) | ||
* decls: faltam nós correspondentes a declarações ou têm problemas (e.g. confundidas com expressões, problemas com tipos, etc.) | * decls: faltam nós correspondentes a declarações ou têm problemas (e.g. confundidas com expressões, problemas com tipos, etc.) | ||
* func decls: problemas com declarações de funções (não existem) | * func decls: problemas com declarações de funções (não existem) | ||
− | * func defs: faltam nós correspondentes a definições de funções ou têm problemas: e.g. faltam tipos, têm relações com lvalues (não devem existir), ou não são expressões | + | * function/func defs: faltam nós correspondentes a definições de funções ou têm problemas: e.g. faltam tipos, têm relações com lvalues (não devem existir), ou não são expressões |
* vars: faltam nós correspondentes a declarações/definições de variáveis ou têm problemas: e.g. faltam tipos, têm relações com lvalues (não devem existir) | * vars: faltam nós correspondentes a declarações/definições de variáveis ou têm problemas: e.g. faltam tipos, têm relações com lvalues (não devem existir) | ||
* exprs: faltam expressões (tipicamente, faltam operadores, chamadas a funções) | * exprs: faltam expressões (tipicamente, faltam operadores, chamadas a funções) | ||
Line 103: | Line 103: | ||
* read/input: o nó de leitura deve ser uma expressão e não uma instrução; ao contário do que acontece no Simple, não tem um left-value associado | * read/input: o nó de leitura deve ser uma expressão e não uma instrução; ao contário do que acontece no Simple, não tem um left-value associado | ||
* call: este nó tem de ser uma expressão que tem como atributos uma função e uma sequência de argumentos | * call: este nó tem de ser uma expressão que tem como atributos uma função e uma sequência de argumentos | ||
− | * alloc: este nó tem de ser uma expressão | + | * alloc/objects: este nó tem de ser uma expressão |
* address: este nó é uma expressão aplicável a um left-value | * address: este nó é uma expressão aplicável a um left-value | ||
* types: não foram os usados os tipos da CDK (basic_type e subclasses) para representar os tipos de dados da linguagem | * types: não foram os usados os tipos da CDK (basic_type e subclasses) para representar os tipos de dados da linguagem |
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 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. |
Os resultados da entrega inicial podem ser revistos, nos horários de dúvidas, até à data da entrega intermédia.
A entrega inicial é obrigatória.
LER COM ATENÇÃO
A avaliação é realizada sobre a versão existente no repositório no final do prazo para a entrega inicial. Projectos que não apresentem alterações relativamente ao conteúdo inicial do repositório 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 actual.
Ver também: Compiladores/Projecto de Compiladores/Avaliação do Projecto (Época Normal).
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:
Se o projecto compilar, poderão ser atribuídos mais 1.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:
Considerando os aspectos 1. a 6., são aplicadas as seguintes penalizações:
|
Os alunos são encorajados a compreender/verificar/corrigir os problemas reportados, especialmente nos casos em que exista anotação explícita na pauta.
Anotações da tabela |
---|
|
(ver Fénix)