Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operador para Esconder Eventos.

Slides:



Advertisements
Apresentações semelhantes
Python: Recursão Claudio Esperança.
Advertisements

Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro.
Introdução à Programação uma Abordagem Funcional Programação I Prof.ª Claudia Boeres CT VII - Sala 34 Departamento de Informática Centro.
1 Sumário Incentivos ao consumo –Subsídios em dinheiro –Subsídios em espécie Desincentivo –Racionamento.
Lógica de Programação Módulo II
Construção de Compiladores
Construção de Compiladores
LINGUAGEM C Centro Federal de Educação Tecnológica da Paraíba Coordenação de Informática Professor: Lafayette B. Melo.
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Algoritmos de Ordenação 4
Unidade 3 Controle de Concorrência
Introdução à Programação
Estrutura de Dados Unidade 16 Simulação da função Fatorial utilizando recursão – 16.1 Prof. Dr. Roberto Ferrari Jr.
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
SISTEMAS ESTRUTURAIS II
Modularização de um programa em C
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Análises léxica e sintática
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1 Augusto Sampaio e Paulo Borba Departamento de Informática Universidade Federal.
Augusto Sampaio e Paulo Borba Centro de Informática
Augusto Sampaio e Paulo Borba Centro de Informática
Curso Prático de Métodos Formais
Indução Matemática Recursão
Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz
Introdução à Programação Orientada a Objetos com Java Paulo Borba Centro de Informática Universidade Federal de Pernambuco Programação Imperativa (e Ponteiros.
Universidade da Beira Interior Processadores Fail-Stop Trabalho realizado por: Rui ferreira Nº Eng. Informática.
Análises léxica e sintática
Material Didático Proposto 1 Universidade Federal de Ouro Preto - UFOP Departamento de Computação - DECOM Comissão para Coordenação das Atividades Pedagógicas.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos.
Recursividade Profs. De Prog2 e Lab2.
Semântica de Linguagens de Programação
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores De Escolha e Leis Algébricas.
Aula Prática de ESD (
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Composição Paralela Síncrona e Alfabetizada.
1 Programação Multi-Paradigma Cristiano Bertolini – Ellison Siqueira – Guilherme Avelino –
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operadores Básicos.
Mapeamento de CSP para JCSP Patrícia Muniz (pmf) Rafael Duarte (rmd)
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Modelos Semânticos e Noções de Refinamento.
Processo Dirigido Pelos Use Cases Disciplina: Estudo do RUP Autor: Tiago Lima Massoni Orientação: Augusto Sampaio Paulo Borba.
Comandos Não-Determinísticos e Atribuição Simultânea PLP – Projeto 2 Julho/2003 Prof. Augusto Sampaio Cibele da Rosa Christ [crc2] Gleifer Vaz Alves [gva]
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Entrelaçamento e Composição Paralela Generalizada.
Engenharia de Software
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação Usando Conjuntos.
1 Hiding, Renomeação, Composição Seqüencial e Refinamento Alexandre Mota
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Modelos de Failures e Failures-divergences.
Paralelismo Alexandre Mota Paralelismo Representam a execução paralela de dois ou mais processos: fluxos de controles independentes.
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operador para Renomeação de Eventos.
Prof: Adriano A. Ribeiro
UNIVERSIDADE FEDERAL DE PERNAMBUCO cin.ufpe.br MiddleCell Equipe: Fernando Kakimoto Filipe Andrade.
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação de Sistemas Distribuídos Parte 2.
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.
Interpretação do Teorema de Herbrand
Engenharia de Software com o RUP - Workflow de Requisitos
©André Santos, Programação Funcional Laziness / Provas de Propriedades André Santos.
Computadores vs. Programas / Algoritmos Computadores vs. Programas -> Algoritmos O tratamento de problemas através do computador geralmente envolve uma.
Profª Juliana Schivani
POLO MG_09 Encontro 7 – Polinômios Prof. Luciano.
Paradigmas de Linguagens de Programação BNF e Interpretador da Linguagem Orientada a Objetos Augusto Sampaio e Paulo Borba Gustavo Pinto Marcelo Queiroz.
Sistemas Digitais Projeto do curso Prof. Manoel Eusebio de Lima Centro de Informática Universidade Federal de Pernambuco.
©2003, Alexandre Vasconcelos & Augusto Sampaio CIn-UFPE1 Análise e Projeto de Sistemas Modelagem de Requisitos com Casos de Uso.
Profª Juliana Schivani Monômios: a xn Produto de uma constante não nula a por uma variável x elevada a um número natural n. 5x 1/2 9x -1 -5y³ √2 x 7.
1 Lógica de Predicados BCC101 Matemática Discreta I.
SEMÂNTICA DENOTACIONAL Alexandre Mota
1 Geometria Analítica Prof. Paulo Salgado
PROBABILIDADE CONDICIONAL E INDEPENDÊNCIA 2015.
P(X=1)=0.75 P(X=2)=0.25  = 1.25 n = Amostragem.
Transcrição da apresentação:

Paulo Borba e Augusto Sampaio Centro de Informática Universidade Federal de Pernambuco Operador para Esconder Eventos

Operador para construir processos: P\X dado um processo P e um conjunto de eventos X P\X comporta-se como P exceto pelo fato de que os eventos em X –não podem ser observados, são escondidos –são executados internamente, de forma automática Hiding

Útil para esconder eventos e comunicações auxiliares do sistema: –concentrar entendimento nos aspectos essenciais do sistema, esquecer os detalhes internos da implementação –evitar comunicações não desejadas ou não permitidas –garantir comunicação ponto-a-ponto: (P [|X|] Q)\X (P [X||Y|] Q)\(X  Y) Hiding

COPY'(a,b) = a?x -> b!x -> COPY'(a,b) BCHAIN(N) = || [{|dd.i,dd.i+1|}] COPY'(dd.i,dd.i+1) HCHAIN(N) = BCHAIN(N)\{|dd.i | i <- {1..N-1}|} Exemplo Para funcionar como um buffer!

BN(a,b,N,s) = #s BN(a,b,N,s^ ) [] #s>0 & b!head(s) -> BN(a,b,N,tail(s)) BN(dd.0,dd.5,5,<>) [= HCHAIN(5) HCHAIN(6) [= BN(dd.0,dd.6,6,<>) Exemplo Equivalente? E BCHAIN ?

(P |~| Q)\X = (P\X) |~| (Q\X) (P\Y)\X = P\(X  Y) (P\Y)\X = (P\X)\Y P\{} = P (a -> P)\X = P\X (se a  X) = a->(P\X) (se a  X) Leis

(a -> P)\{a} = P\{a} (a -> P)\{b} = a -> P\{b} (a -> P [] b -> Q)\{a,b} = P\{a,b} |~| Q\{a,b} (a -> P [] b -> Q)\{b} = (a -> P\{b} [] Q\{b}) |~| Q\{b} Processos com e sem restrição de visibilidade

(c?x:A -> P)\X = if X  A={} then c?x:A -> (P\X) else ( (c?x:(A\X) -> (P\X)) [] (|~| {P(a)\X |a  X  A}) ) |~| (|~| {P(a)\X |a  X  A}) Processos com e sem restrição de visibilidade

Exemplo ATM2 = incard?c -> pin.fpin(c) -> req?n -> ((dispense!n -> outcard.c -> ATM2) |~| (refuse -> (ATM2 |~| outcard.c -> ATM2))) ATMref(n) = (n ATMref(Max) [] incard?c -> pin.fpin(c) -> req?w -> (if w<=n then dispense!w -> outcard.c -> ATMref(n-w) else refuse -> outcard.c -> ATMref(n) )

Exemplo ? ATM2 [= ATMref(0) ? ATM2 [= ATMref(0)\{refill} ? ATMref(0)\{refill} [= ATM2 ? ATMref(0) [= ATM2 ATMref(0) é determinística ATMref(0)\{refill} é não-determinística

Processo realiza seqüência infinita de eventos internos O operador de hiding pode introduzir divergência ou livelock: P = (  X.a -> X)\{a} Q = a -> Q\{a} P = P (P = (  X.X)) P = div Divergência Recursão guardada x construtiva

(P [|X|] Q)\Z = (P\Z) [|X|] (Q\Z) ( se X  Z={}) (P [X||Y] Q)\Z = (P\Z  X)[X||Y](Q\Z  Y) ( se X  Y  Z={}) Leis

traces(P\X) = { s\X | s  traces(P) } s\X denota s  (Events\X) Traces

Do livro texto –Essenciais: –Opcionais: Exercícios