Avisos
Esclarecimento de dúvidas:
- Consultar sempre o corpo docente atempadamente: presencialmente ou através do endereço oficial da disciplina [1].
- Não utilizar fontes de informação não oficialmente associadas ao corpo docente (podem colocar em causa a aprovação à disciplina).
- Não são aceites justificações para violações destes conselhos: quaisquer consequências nefastas são da responsabilidade do aluno.
Requisitos para desenvolvimento, material de apoio e actualizações do enunciado (ver informação completa em Projecto de Compiladores):
- O material de apoio é de uso obrigatório e não pode ser alterado.
- Verificar atempadamente (mínimo de 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de desenvolvimento.
Processo de avaliação (ver informação completa em Avaliação do Projecto):
- Datas: 2015/03/25 (inicial); 2015/04/14 (intercalar); 2015/05/20 (final); 2015/05/20-2015/05/27 (teste prático).
- A entrega inicial, sendo crucial para o projecto, é obrigatória e sua não realização implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina em 2014-2015.
- Verificar atempadamente (até 48 horas antes do final de cada prazo) os requisitos exigidos pelo processo de avaliação, incluindo a capacidade de acesso ao 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.
- A avaliação do projecto pressupõe o compromisso de honra de que o trabalho correspondente foi realizado pelos alunos correspondentes ao grupo de avaliação.
- Fraudes na execução do projecto terão como resultado a exclusão dos alunos implicados do processo de avaliação em 2014-2015.
Tipos de Dados
Manipulação de Nomes
Espaço de nomes e visibilidade dos identificadores
Validade das variáveis
Convenções Lexicais
Caracteres brancos
Comentários
Palavras chave
Tipos
Operadores de expressões
Delimitadores e terminadores
Identificadores (nomes)
Literais
Inteiros
Reais em vírgula flutuante
Cadeias de caracteres
Ponteiros
Gramática
Tipos, identificadores, literais e definição de expressões
Left-values
Ficheiros
Declaração de variáveis e constantes
Variáveis
Constantes
Símbolos globais
Inicialização
Funções
Declaração
Invocação
Corpo
Função principal e execução de programas
Intruções
Blocos
Instrução condicional
Instrução de iteração
Instrução de terminação
Instrução de continuação
Instrução de retorno
Expressões como instruções e operações de impressão
Expressões
Expressões primitivas
Identificadores
Leitura
Parênteses curvos
Expressões resultantes de avaliação de operadores
Indexação
Identidade e simétrico
Reserva de memória
Expressão de indicação de posição
Exemplos
Os exemplos não são exaustivos e não ilustram todos os aspectos da linguagem. Podem obter-se outros na página da disciplina.
Factorial
Exemplo da definição de função num ficheiro (ficheiro factorial.pwn):
(---)
Programa com vários módulos
Exemplo da utilização da função noutro ficheiro (ficheiro main.pwn):
(---)
Omissões e Erros
Casos omissos e erros serão corrigidos em futuras versões do manual de referência.