Datas Importantes
- Ver secção Método de Avaliação
Enunciado e Condições de Realização do Projecto
O enunciado do projecto está dividido em duas partes: a definição do problema da criação do compilador e a definição da linguagem de programação em causa (esta secção) e corresponde a um problema de programação genérico para qualquer linguagem, devendo ser abordado como qualquer projecto de software. A segunda parte, mais importante no contexto da disciplina, implica a compreensão da semântica a realizar na linguagem suportada pelo compilador.
A descrição da linguagem está disponível no manual de referência. Esta descrição deve ser seguida rigorosamente, não sendo valorizada qualquer modificação ou extensão, antes pelo contrário.
- Manual de referência da linguagem: ob1-201403271639.pdf
Sugere-se fortemente iniciar o desenvolvimento com base no compilador Compact (fornecido como material de apoio e disponível nesta página) e prosseguir através de alterações incrementais (suportadas pelo repositório CVS).
Existem recursos de uso obrigatório: linguagem de trabalho (C++), material de apoio, repositório CVS.
O repositório CVS deve conter um projecto passível de ser construído (compilador e biblioteca de run-time) através da invocação do comando make (este aspecto é automaticamente garantido quando se usa o compilador Compact como base de trabalho).
O repositório CVS é o único meio de entrega do projecto e será considerada entregue a versão lá existente à data correspondente ao fim do prazo (independentemente de serem possíveis alterações subsequentes). Não são aceites quaisquer outras formas de entrega.
O ambiente de trabalho oficial é C++11 sobre Linux (openSUSE 13.1) em arquitecturas i386 (o desenvolvimento pode decorrer em outros ambientes, mas a avaliação só é considerada no oficial). As linhas dos ficheiros terminam exclusivamente no carácter \n (newline) (código 0x0A). Quaisquer erros resultantes da existência de outros caracteres, como por exemplo o carriage-return do DOS, são tratados como qualquer outro erro. Da mesma forma, ficheiros que não terminem com \n, ou que incluam outros caracteres (por exemplo o ^Z do DOS), e que produzam erros na execução dos testes serão penalizados na avaliação. Este aviso não é em vão: algumas ferramentas são sensíveis às diferenças, produzindo código errado.
Enunciado e Condições de Realização do Projecto
O enunciado do projecto está dividido em duas partes: a definição do problema da criação do compilador e a definição da linguagem de programação em causa (esta secção) e corresponde a um problema de programação genérico para qualquer linguagem, devendo ser abordado como qualquer projecto de software. A segunda parte, mais importante no contexto da disciplina, implica a compreensão da semântica a realizar na linguagem suportada pelo compilador.
A descrição da linguagem está disponível no manual de referência. Esta descrição deve ser seguida rigorosamente, não sendo valorizada qualquer modificação ou extensão, antes pelo contrário.
- Manual de referência da linguagem: ob1-201403271639.pdf
Sugere-se fortemente iniciar o desenvolvimento com base no compilador Compact (fornecido como material de apoio e disponível nesta página) e prosseguir através de alterações incrementais (suportadas pelo repositório CVS).
Existem recursos de uso obrigatório: linguagem de trabalho (C++), material de apoio, repositório CVS.
O repositório CVS deve conter um projecto passível de ser construído (compilador e biblioteca de run-time) através da invocação do comando make (este aspecto é automaticamente garantido quando se usa o compilador Compact como base de trabalho).
O repositório CVS é o único meio de entrega do projecto e será considerada entregue a versão lá existente à data correspondente ao fim do prazo (independentemente de serem possíveis alterações subsequentes). Não são aceites quaisquer outras formas de entrega.
O ambiente de trabalho oficial é C++11 sobre Linux (openSUSE 13.1) em arquitecturas i386 (o desenvolvimento pode decorrer em outros ambientes, mas a avaliação só é considerada no oficial). As linhas dos ficheiros terminam exclusivamente no carácter \n (newline) (código 0x0A). Quaisquer erros resultantes da existência de outros caracteres, como por exemplo o carriage-return do DOS, são tratados como qualquer outro erro. Da mesma forma, ficheiros que não terminem com \n, ou que incluam outros caracteres (por exemplo o ^Z do DOS), e que produzam erros na execução dos testes serão penalizados na avaliação. Este aviso não é em vão: algumas ferramentas são sensíveis às diferenças, produzindo código errado.