esquemas e suas operações

20
Esquemas e suas operações Forma geral: Ident. larações ou Ident. = [Declarações | Pr dicado ^ Esquemas são estruturas que agrupam variáveis e predicados que restringem seus valores. Seu nome possui escopo global, mas as declarações e predicados possuem escopo local

Upload: gezana

Post on 13-Jan-2016

23 views

Category:

Documents


0 download

DESCRIPTION

Esquemas e suas operações. Forma geral:. Ident. Declarações ou Ident. = [Declarações | Predicado] Predicado. ^. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Esquemas e suas operações

Esquemas e suas operações

Forma geral:

Ident.Declarações ou Ident. = [Declarações | Predicado]Predicado

^

Esquemas são estruturas que agrupam variáveis e predicados que restringem seus valores. Seu nome possui escopo global, mas as declarações e predicados possuem escopo local

Page 2: Esquemas e suas operações

Exemplos de esquemas

[Pessoa, Fone]

Agenda = [ag: Pessoa Fone; con: P Pessoa | con = dom ag]

ou, alternativamente,

Agenda ag: Pessoa Fone con: P Pessoa con = dom ag

I^

I

given sets

Page 3: Esquemas e suas operações

Renomeação em esquemas

Forma geral:– nomeEsquema [nomeNovo / nomeAtual]

Exemplo: Aniversarios = Agenda[aniv/ag]^

I

Aniversarios aniv: Pessoa Fone con: P Pessoa con = dom aniv

Resulta em

Page 4: Esquemas e suas operações

Inclusão de Esquemas

Forma geral: Ident.nomeEsquemaDeclaraçõesPredicado

Exemplo:

I

ContaAgAgendaqtd: Nqtd = # con

I

ContaAgag: Pessoa Fonecon: P Pessoaqtd: Ncon = dom agqtd = # con

I

Page 5: Esquemas e suas operações

Decoração de esquemas

Forma geral: nomeEsquema’ Exemplo:

I

ContaAg’ag’: Pessoa Fonecon’: P Pessoaqtd’: Ncon’ = dom ag’qtd’ = # con’

I

Page 6: Esquemas e suas operações

Convenções sobre esquemas

Forma geral: nomeEsquema Usado em operações para denotar

mudança de estado Exemplo:

AgendaAgendaAgenda’ I

Agenda ag, ag’: Pessoa Fone con, con’: P Pessoa con = dom ag con’ = dom ag’

Page 7: Esquemas e suas operações

Convenções sobre esquemas

Forma geral: nomeEsquema Usado em operações para denotar que

não há mudança de estado Exemplo:

I

Agenda ag, ag’: Pessoa Fone con, con’: P Pessoa con = dom ag con’ = dom ag’ ag = ag’ con = con’

Agenda Agendaag=ag’con=con’

Page 8: Esquemas e suas operações

Usando e em operações Inclui0

Agendap?: Pessoaf?: Foneag’ = ag {p? f?}con’ = con {p?}

Consulta0

Agendap?: Pessoaf!: Fonep? conf! = ag(p?)

Variáveis de entrada (?)

Variável de saída (!)

Page 9: Esquemas e suas operações

Conjunção e disjunção de esquemas

Seja Resultado ::= opOK | pessoaInexistente

Sucessom!: Resultadom! = opOK

ERRO Agendap?: Pessoam!: Resultadop? conm! = pessoaInexistente

Consulta = (Consulta0 Sucesso) ERRO^

Page 10: Esquemas e suas operações

Outras operações

nomeEsquema1 nomeEsquema2

– Junta declarações

– Implicação dos predicados

nomeEsquema1 nomeEsquema2

– Junta declarações

– Equivalência dos predicados

Page 11: Esquemas e suas operações

Operação ocultamento (“hiding”)

Corresponde a quantificar existencialmente variáveis em questão

Exemplo: QualquerFone = Consulta0\(p?)

QualquerFone Agendaf!: Fone p?:Pessoa p? con f! = ag(p?)

Page 12: Esquemas e suas operações

Composição seqüencial

Sejam O1 e O2 dois esquemas como operações

O1;O2 representa a composição seqüencial entre O1 e O2

Significando que o estado final de O1 irá coincidir com o estado inicial de O2

O1O2S’ = S{entrada(?)

}saída (!)

Estado intermediário

S

S’

Page 13: Esquemas e suas operações

Composição seqüencialSejam O1 e O2 os seguintes esquemas: O1

x, x’: TP(x, x’)

O2

x, x’: TQ(x, x’)

A composição seqüencial de O1 e O2, O1 ; O2, é definida por:

O1 ; O2 = (O1[x0/x’] O2[x0/x]) \ (x0)ou

O1 ; O2

x, x’: T x0:T P(x, x0) Q(x0, x’)

Exercício: se p? dom ag então Inclui0 ; Exclui0 Agenda,ondeExclui0 = [ Agenda; p?:Pessoa |

p? con ag’ = {p?} ag con’ = con\{p?}]

^

^

Page 14: Esquemas e suas operações

Operação piping

Semelhante à composição seqüencial, exceto por considerar as comunicações ao invés do estado

Portanto, P>>Q significa que as saídas de P corresponderão as entradas de Q

O predicado referente ao estado será simplesmente a conjunção dos predicados de P e de Q

Page 15: Esquemas e suas operações

Tipos em Z

Há quatro formas de introduzir tipos em Z:– Given sets: [ ... ]– Produto cartesiano: ... ...– Conjunto das partes: P ...– Esquemas: nomeTipo

I

...

...

Page 16: Esquemas e suas operações

Tipos em Z

Os naturais ( N), inteiros (Z) e reais ( R) são usualmente assumidos como pré-definidos

Conjuntos arbitrários são permitidos em declarações, mas nem sempre são tipos– O tipo é derivado (inferência) das sub-

expressões que compõem o conjunto arbitrário, através de um processo de normalização

I I

Page 17: Esquemas e suas operações

Processo de normalizaçãoSeja Pares == { n: N | 2 * n }I

y: Pares y: N

y Pares

I

R: X Y R: P(X Y)I

f: X Y f: P(X Y)

f X Y

I

s: seq Xs: P(X Y)

s seq X

I

Page 18: Esquemas e suas operações

Esquema como tipo

Semelhante aos registros de PASCAL Componentes são acessados através

da operação de projeção (.)

I

Agenda ag: Pessoa Fone con: P Pessoa con = dom ag

a, b: Agenda

a . ag = b . ag

Projeção

Page 19: Esquemas e suas operações

Mapeamentos (“bindings”)

Um esquema como tipo pode ser visto como um binding de variável para valor

Por exemplo: seja a: Agenda, tal que ag {(josé,32213423)}, con {josé}

Então, aplicando o operador de projeção sobre a, referente a ag, nos dá– a . ag = {(josé, 32213423)}

Page 20: Esquemas e suas operações

O operador Aplica-se a nomes de esquemas,

retornando seu binding característico Por exemplo: seja a: Agenda, tal como

antes então a = ag {(josé,32213423)}, con {josé}

Seu uso comum é Agenda’= Agenda, que implica ag’=ag con’=con

Um esquema é dito normalizado quando suas declarações estão normalizadas