1 / 20

Esquemas e suas operações

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

gezana
Download Presentation

Esquemas e suas operações

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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

  2. Exemplos de esquemas given sets [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

  3. Renomeação em esquemas • Forma geral: • nomeEsquema [nomeNovo / nomeAtual] • Exemplo: Aniversarios = Agenda[aniv/ag] ^ Resulta em Aniversarios aniv: Pessoa  Fone con: P Pessoa con = dom aniv I

  4. Inclusão de Esquemas • Forma geral: Ident. nomeEsquema Declarações Predicado • Exemplo: ContaAg ag: Pessoa  Fone con: P Pessoa qtd: N con = dom ag qtd = # con ContaAg Agenda qtd: N qtd = # con I I I

  5. Decoração de esquemas • Forma geral: nomeEsquema’ • Exemplo: ContaAg’ ag’: Pessoa  Fone con’: P Pessoa qtd’: N con’ = dom ag’ qtd’ = # con’ I I

  6. Convenções sobre esquemas • Forma geral:  nomeEsquema • Usado em operações para denotar mudança de estado • Exemplo:  Agenda ag, ag’: Pessoa  Fone con, con’: P Pessoa con = dom ag con’ = dom ag’  Agenda Agenda Agenda’ I

  7. Convenções sobre esquemas • Forma geral:  nomeEsquema • Usado em operações para denotar que não há mudança de estado • Exemplo:  Agenda ag, ag’: Pessoa  Fone con, con’: P Pessoa con = dom ag con’ = dom ag’ ag = ag’ con = con’  Agenda  Agenda ag=ag’ con=con’ I

  8. Usando  e  em operações Inclui0  Agenda p?: Pessoa f?: Fone ag’ = ag  {p? f?} con’ = con  {p?} Variáveis de entrada (?) Consulta0  Agenda p?: Pessoa f!: Fone p?  con f! = ag(p?) Variável de saída (!)

  9. Conjunção e disjunção de esquemas Seja Resultado ::= opOK | pessoaInexistente ERRO  Agenda p?: Pessoa m!: Resultado p?  con m! = pessoaInexistente Sucesso m!: Resultado m! = opOK ^ Consulta = (Consulta0 Sucesso)  ERRO

  10. Outras operações • nomeEsquema1 nomeEsquema2 • Junta declarações • Implicação dos predicados • nomeEsquema1 nomeEsquema2 • Junta declarações • Equivalência dos predicados

  11. Operação ocultamento (“hiding”) • Corresponde a quantificar existencialmente variáveis em questão • Exemplo: QualquerFone = Consulta0\(p?) QualquerFone  Agenda f!: Fone  p?:Pessoa  p?  con f! = ag(p?)

  12. 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 { S’ entrada(?) O2 S’ = S } O1 saída (!) S Estado intermediário

  13. Composição seqüencial Sejam O1 e O2 os seguintes esquemas: O1 x, x’: T P(x, x’) O2 x, x’: T Q(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, onde Exclui0 = [ Agenda; p?:Pessoa | p?  con  ag’ = {p?} ag  con’ = con\{p?}]  ^

  14. 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

  15. Tipos em Z • Há quatro formas de introduzir tipos em Z: • Given sets: [ ... ] • Produto cartesiano: ...  ... • Conjunto das partes: P ... • Esquemas: nomeTipo I ... ...

  16. 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

  17. Processo de normalização I Seja Pares == { n: N | 2 * n } y: N y  Pares I y: Pares R: P(X  Y) I R: X  Y f: P(X  Y) f  X  Y I f: X  Y s: P(X  Y) s  seq X I s: seq X

  18. Esquema como tipo • Semelhante aos registros de PASCAL • Componentes são acessados através da operação de projeção (.) Agenda ag: Pessoa  Fone con: P Pessoa con = dom ag a, b: Agenda I a . ag = b . ag Projeção

  19.    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)}

  20.    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

More Related