Datas Importantes

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.

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.

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.