A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Aula Prática: A Ferramenta Possum

Apresentações semelhantes


Apresentação em tema: "Aula Prática: A Ferramenta Possum"— Transcrição da apresentação:

1 Aula Prática: A Ferramenta Possum
Métodos Formais Augusto Sampaio

2 Roteiro Características gerais Escrevendo especificações em LaTeX
Exemplo Como utilizar o sistema Executando especificações

3 Características gerais
Animador de especificações escritas em SUM(padrão) ou na notação Z As seguintes facilidades são oferecidas: Análise sintática, incluindo vários sintaxes : sum, zed.sty, oz.sty, lexis; Checagem de tipos tradutor entre as sintaxes; Avaliação de expressões e predicados;

4 Escrevendo especificações Z em LaTeX
LaTeX é uma linguagem para criar documentos, tal como a linguagem implícita do WORD Especificações Z usam símbolos gráficos especiais: D, X, Þ, etc LaTeX substitui os símbolos por macros: \Delta, \Xi, \implies, etc. Arquivo LaTeX pode ser processado por ferramentas para visualizar e/ou imprimir a especificação

5 º º º Elementos de Z em LaTeX " x, y, z: IN · x>y ^ y>z Þ x>z
\begin{zed} \forall x, y, z: \\ \t1 x>y \land y>z \implies x>z \end{zed} \begin{axdef} C:T \where P(C) \end{axdef} Nome[Par] DEstado var1’=exp1 var2’=var2 \begin{schema}{Nome[Par]} \Delta Estado \where var1’=exp1 \\ \end{schema}

6 Esqueleto Básico de Especificação (geração de Postscript)
\documentstyle[zed]{article} % Ajustes do documento: margens, topo, etc. \begin{document} \section{Tipos} Os {\sl given sets} abaixo representam o conjunto de valores e s\’{\i}mbolos usados pela especifica\c{c}\~{a}o da tabela de s\’{\i}mbolos. \begin{zed} [VAL,SYM] \end{zed} \end{document}

7 Resultado de um Documento LaTeX
Pode-se processar (compilar) um documento LaTeX para obter um documento de visualização. Por exemplo: ulysses> latex espec.zed Do comando acima obtém-se o arquivo espec.dvi, que pode ser visualizado da seguinte forma: ulysses> xdvi espec Pode-se gerar espec.ps de espec.dvi para imprimir ou visualizar: Visualização ulysses> ghostview espec.ps Conversão ulysses> dvips espec Impressão ulysses> lpr -Pxerox espec.ps

8 Exemplo: Controle de Acesso
ESTADO INICIALIZAR [Pessoa] s : |P Pessoa # s  limite Estado’ limite == 3 s’ = {} D Estado p?: Pessoa #s < limite p? Ï s s’ = s U {p?} INCLUSAO Msg ::= AUSENTE | PRESENTE Consulta X Estado p?: Pessoa ap!: Msg (p? Î s ^ ap! = PRESENTE) v (p? Ï s ^ ap! = AUSENTE) EXCLUSAO D Estado p?: Pessoa p? Î s s’ = s \ {p?}

9 Especificação modo Possum
Possível inclusão de cabeçalhos, e.g. \section {Nome da seção} \subsection {Nome da subseção} \subsubsection {Nome da subsubseção} Dispense o uso de ajustes de documento para impressão PostScript Na ferramenta apenas declarações e/ou cabeçalhos

10 Esqueleto Básico de Especificação (Possum)
\section{Tipos} \begin{zed} [VAL,SYM] \end{zed} \section{Estado do Sistema} \begin{schema}{ESTADO} s_1 : X \\ s_2 : Y \where Predicado \end{schema}

11 Como utilizar o sistema
Programa executado no Linux. A especificação a ser processada deverá ser escrita em LaTeX (com as macros definidas no estilo zed.sty). No menu Dialogs selecione a operação Parameters. Na janela que se abrirá modifique o campo Syntax de sum(padrão) para o formato zed Para abrir um arquivo(leitura/edição) escolha o menu Files/Open e selecione o arquivo O menu Files/Read Spec... carrega um arquivo no interpretador Possum

12 Condições de Executabilidade
É preciso indicar explicitamente o esquema que representa o estado e a inicialização na janela Possum Parameters campo State Schema: nome do esquema - estado campo Init Schema: nome do esquema de inicialização Valores atribuídos a variáveis do tipo Given Set devem ser colocados entre aspas Voltar a sintaxe para sum, para melhor visualização Após carregar o arquivo, invocar a operação de inicialização do esquema-estado

13 Executando Especificações
Como executar um esquema: menu Dialogs/Compound: escolher o esquema escolher opção Invoke para executar o esquema Os esquemas delta: as varíáveis de entrada recebem valores, não importando a ordem: NomeDoEsquema (sem váriáveis de entrada) NomeDoEsquema {Valor1/var1?, Valor2/var2?} O esquema operação de consulta(produz uma saída) : NomeDoEsquema >> (sem variáveis de entrada) NomeDoEsquema {Valor1/var1?, Valor2/var2?} >>

14 Executando Especificações
Os comandos correspondentes são exibidos na linha de comando do interpretador O comando Ctrl Enter envia a consulta(declaração/ predicado/operação/expressão). Ctrle Ctrl permitem recuperar os últimos comandos Ao avaliar uma declaração de um arquivo zed, se declaração for bem sucedida, passa com Yes. Caso contrário emite uma mensagem apontando o erro na notação, ou a mensagem Whatever(falha na interpretação). No solution: predicado foi quebrado, resultou false

15 Exercícios 1) Incluir os seguintes elementos no conjunto:
“joao”, “maria”, “pedro” executando a INCLUSAO 2) Tentar incluir mais um elemento 3) Verificar se “maria” está presente executando a operação CONSULTA 4) Deletar “joao” executando EXCLUSAO 5) Deletar “carla” executando EXCLUSAO 6) Especificar uma nova operação para remoção randômica 7) Carregar a especificação e tentar executar esta operação 8) Definir PESSOA como um registro, com atributos matrícula, nome, redefinir as operações de inclusão, exclusão e consulta


Carregar ppt "Aula Prática: A Ferramenta Possum"

Apresentações semelhantes


Anúncios Google