CSP: Semântica e Refinamento Alexandre Mota (acm@cin.ufpe.br)

Post on 19-Apr-2015

105 views 2 download

Transcript of CSP: Semântica e Refinamento Alexandre Mota (acm@cin.ufpe.br)

CSP: Semântica e Refinamento

Alexandre Mota(acm@cin.ufpe.br)

Semântica

Como qualquer linguagem formal, CSP pode ser entendida usando-se uma das seguintes semânticas Operacional Denotacional Algébrica

Semântica Operacional

Interpreta CSP através de diagramas de transições (LTS)

LTS (ou Labelled Transition Systems) são grafos

Usam-se firing rules sobre cada operador de CSP para criar LTS

Firing Rules

STOP Não há, pois não se criam transições

SKIP

e -> P

Ondecomms( ) =

Firing Rules

P |~| Q

P [] Q

Semântica Denotacional

Interpreta linguagem usando modelos matemáticos tradicionais Conjuntos, seqüências, funções, etc.

É mais abstrato que a semântica operacional, porém mais concreto que a algébrica

Modelos Denotacionais Modelos: Traces (T), Failures (F),

Failures-Divergences (FD) Poder de descrição aumenta de T para

FD Capturam-se mais aspectos

(comportamento): Não-determinismo (safety ou segurança) Deadlock Livelock

7

Modelo de Traces

Modelo de Falhas

Modelo de Divergências

E algumas falhas são incrementadas

… (slide anterior)

Semântica Algébrica

Significado da linguagem é dado em termos de leis algébricas P [] Q = Q [] P (Comutatividade – [])

Para confirmação da validade, requer prova usando semântica denotacional em falhas-divergências

Algumas leis

Refinamento

Trata-se de uma relação de satisfação

13

P QM

T F FD

Propriedades Importantes

Relação de refinamento deve ser uma ordem parcial:

14

1. S S S (Reflexiva)

2. S, T S T T S S = T (Anti-Simétrica)

3. S, T, U S T T U S U (Transitiva)

4. S, T S T C[S] C[T] (Monotônica)

Igualdade e Refinamento Várias noções de refinamento:

P [ T = QP [ F = QP [ FD = Q

e várias de igualdade:P =T Q

P =F Q

P =FD Q

15

Definição

Refinamento em CSP é definido a partir da relação da Teoria dos Conjuntos

Assim P [ T = Q T(Q) T(P) P [ F = Q T(Q) T(P) e F(Q) F(P) P [ FD = Q F(Q) F(P) e D(Q)

D(P)

16Obs.: F(P) = F(P) { (s, X) | s D(P) }

Exercício 1

Mostre que os seguintes refinamentos são válidos: P [ ] Q = P |~| Q P [ ] Q P, ou Q (a b STOP) (a STOP)

17

Exercício 2

Mostre a validade dos seguintes refinamentos: P |~| Q P, ou Q (a b STOP) (a STOP)

18

Exercício 3

Mostre a validade dos seguintes refinamentos: P |~| Q P, ou Q

19

Propriedades Clássicas

Determinismo Algoritmo próprio…

Ausência de Deadlock RUN(sigma) P

Ausência de Livelock CHAOS(sigma) P

20

Verificação de Modelo vs Refinamento

Verificação de modelo consiste em: M f

Enquanto que verificação de refinamento consiste no que já vimos anteriormente

Coincidem quando pode-se encontrar processo CSP P que foi construído para ter a propriedade f (Ex.: ausência de deadlock e livelock)

21

=|

Referências

Roscoe, A.W. The Theory and Practice of Concurrency. Prentice-Hall, 1998.

Hoare, C.A.R. Communicating Sequential Processes. Prentice-Hall, 1985.