Difference between revisions of "Compiladores/Projecto de Compiladores/Projecto 2014-2015/Manual de Referência da Linguagem "pwn""

From Wiki**3

< Compiladores‎ | Projecto de Compiladores
Line 2: Line 2:
 
{{TOCright}}
 
{{TOCright}}
  
A linguagem '''pwn''' é uma linguagem imperativa e é apresentada de forma intuitiva neste manual. São apresentadas características básicas da linguagem ([[#Tipos de Dados|Tipos de Dados]], [[#Manipulação de Nomes|Manipulação de Nomes]]); convenções lexicais ([[#Convenções Lexicais|Convenções Lexicais]]); estrutura/sintaxe ([[#Gramática|Gramática]]); especificação das funções ([[#Funções|Funções]]); semântica das instruções ([[#Instruções|Instruções]]); semântica das expressões ([[#Expressões|Expressões]]); e, finalmente, alguns exemplos ([[#Exemplos|Exemplos]]).
+
A linguagem '''pwn''' é uma linguagem imperativa e é apresentada de forma intuitiva neste manual. São apresentadas características básicas da linguagem ([[#Tipos de Dados|Tipos de Dados]], [[#Manipulação de Nomes|Manipulação de Nomes]]); ([[#Convenções Lexicais|convenções lexicais]]); ([[#Gramática|estrutura/sintaxe]]); ([[#Funções|especificação das funções]]); ([[#Instruções|semântica das instruções]]); ([[#Expressões|semântica das expressões]]); e, finalmente, ([[#Exemplos|alguns exemplos]]).
  
 
= Tipos de Dados =
 
= Tipos de Dados =

Revision as of 22:30, 19 February 2015

AVISOS - Avaliação em Época Normal

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 12:00 (inicial); 2015/04/14 12:00 (intercalar); 2015/05/20 12:00 (final); 2015/05/20-2015/05/27 (teste prático).
  • Todas as entregas são cruciais para o bom desenvolvimento do projecto, sendo obrigatórias: a não realização de uma entrega implica a exclusão da avaliação do projecto e, por consequência, da avaliação da disciplina.
  • 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.
  • Apenas se consideram para avaliação os projectos existentes no repositório 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.
  • 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 curso.

A linguagem pwn é uma linguagem imperativa e é apresentada de forma intuitiva neste manual. São apresentadas características básicas da linguagem (Tipos de Dados, Manipulação de Nomes); (convenções lexicais); (estrutura/sintaxe); (especificação das funções); (semântica das instruções); (semântica das expressões); e, finalmente, (alguns exemplos).

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.