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

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

Esquemas e suas operações n Forma geral: Ident. Declarações ou Ident. = [Declarações | Predicado] Predicado ^ n Esquemas são estruturas que agrupam variáveis.

Apresentações semelhantes


Apresentação em tema: "Esquemas e suas operações n Forma geral: Ident. Declarações ou Ident. = [Declarações | Predicado] Predicado ^ n Esquemas são estruturas que agrupam variáveis."— Transcrição da apresentação:

1 Esquemas e suas operações n Forma geral: Ident. Declarações ou Ident. = [Declarações | Predicado] Predicado ^ n 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 [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

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

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

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

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

7 Convenções sobre esquemas n Forma geral:  nomeEsquema n Usado em operações para denotar que não há mudança de estado n Exemplo: I  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’

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

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

10 Outras operações n nomeEsquema 1  nomeEsquema 2 –Junta declarações –Implicação dos predicados n nomeEsquema 1  nomeEsquema 2 –Junta declarações –Equivalência dos predicados

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

12 Composição seqüencial n Sejam O 1 e O 2 dois esquemas como operações n O 1 ; O 2 representa a composição seqüencial entre O 1 e O 2 n Significando que o estado final de O 1 irá coincidir com o estado inicial de O 2 O1O1 O2O2 S’ = S { entrada(?) } saída (!) Estado intermediário S S’

13 Composição seqüencial Sejam O 1 e O 2 os seguintes esquemas: O 1 x, x’: T P(x, x’) O 2 x, x’: T Q(x, x’) A composição seqüencial de O 1 e O 2, O 1 ; O 2, é definida por: O 1 ; O 2 = (O 1 [x 0 /x’]  O 2 [x 0 /x]) \ (x 0 ) ou O 1 ; O 2 x, x’: T  x 0 :T  P(x, x 0 )  Q(x 0, x’) Exercício: se p?  dom ag então Inclui 0 ; Exclui 0  Agenda, onde Exclui 0 = [  Agenda; p?:Pessoa | p?  con  ag’ = {p?} ag  con’ = con\{p?}]  ^ ^ 

14 Operação piping n Semelhante à composição seqüencial, exceto por considerar as comunicações ao invés do estado n Portanto, P>>Q significa que as saídas de P corresponderão as entradas de Q n O predicado referente ao estado será simplesmente a conjunção dos predicados de P e de Q

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

16 Tipos em Z n Os naturais ( N), inteiros (Z) e reais ( R) são usualmente assumidos como pré- definidos n 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 Seja 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 X s: P(X  Y) s  seq X I

18 Esquema como tipo n Semelhante aos registros de PASCAL n 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

19 Mapeamentos (“bindings”) n Um esquema como tipo pode ser visto como um binding de variável para valor n Por exemplo: seja a: Agenda, tal que  ag {(josé, )}, con {josé}      n Então, aplicando o operador de projeção sobre a, referente a ag, nos dá –a. ag = {(josé, )}

20 O operador  n Aplica-se a nomes de esquemas, retornando seu binding característico n Por exemplo: seja a: Agenda, tal como antes então –  a =  ag {(josé, )}, con {josé}  n Seu uso comum é  Agenda’=  Agenda, que implica ag’=ag  con’=con n Um esquema é dito normalizado quando suas declarações estão normalizadas    


Carregar ppt "Esquemas e suas operações n Forma geral: Ident. Declarações ou Ident. = [Declarações | Predicado] Predicado ^ n Esquemas são estruturas que agrupam variáveis."

Apresentações semelhantes


Anúncios Google