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.

Slides:



Advertisements
Apresentações semelhantes
Lógica de Predicados e Representação de Conhecimento
Advertisements

Python: Funções Claudio Esperança.
Pseudo-código: sintaxe
Prof. Marcone Sotéro Cálculo de Predicados Prof. Marcone Sotéro
Monitoria de Discreta: Aula de Revisão
Análise e Desenvolvimento de Sistemas
Lógica Fuzzy Aplicada a Sistemas de Diagnóstico
Prof.: Bruno Rafael de Oliveira Rodrigues
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Universidade Federal de São Carlos Introdução à Linguagem C Comandos.
Conteúdo: - Modularização.
Cálculo Relacional Datalog não-recursivo
Mutação de Interface Interface Mutation: An Approach for Integration Testing Marcio E. Delamaro José C. Maldonado Aditya P. Mathur.
1 Tipos definidos O programador pode definir seus próprios tipos de dados tipos complexos usados da mesma forma que os simples declaram-se variáveis utilizando-se.
Contratos em Projeto OO
BCC 101– Matemática Discreta
Algoritmos Escher.
Diagrama de Classes.
A Linguagem de Especificação Z
Lógica de Primeira Ordem -3
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
Sintaxe e Semântica do PROLOG.
Prolog Programação Lógica Ícaro A. Souza.
Introdução a Computação e Cálculo Numérico
Aula prática 8 Ponteiros Monitoria de Introdução à Programação
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 8 Ponteiros Monitoria de Introdução à Programação.
1 Funções (versão C) Funções são pedaços de código encapsulados para fácil acesso. Em C e C++ o processo de construção de uma função passa por 2 etapas.
1 Variáveis dimensionadas Uma variável dimensionada corresponde a uma zona da memória contendo várias variáveis do mesmo tipo guardadas contiguamente.
Linguagem de Programação II Parte IX
Conjuntos São agrupamentos formados a partir de uma característica comum. Aos componentes do conjunto, dá-se o nome de elementos.
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Prof. Esp. Cristiano José Cecanho Inteligência Artificial
Conjuntos (continuação)
Bags n Servem para armazenar a repetição de elementos n Tal qual conjuntos, a ordem dos elementos não importa n Por isso, também recebem a designação de.
Lógica de Predicados Forma Prenex e Skolem.
Lógicas e Inferência para IA
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Refinamento de Dados Estende o refinamento de operações –O estado da especificação abstrata pode ser diferente do concreto –Viabiliza a troca de tipos.
Lógica de Predicados Forma Prenex e Skolem.
Linguagem de Expressões 2
Algoritmos e Estruturas de Dados I – Ponteiros
André Luiz da Costa Carvalho
Paradigma funcional.
CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa
Analise Semântica aula-10-analise-semântica.pdf.
Elsa Carvalho 186 Universidade da Madeira Departamento de Matemática Programação em Lógica e Funcional (2000/01) (Actualizado em 2004/05) Aplicação e Composição.
BCC101 Matemática Discreta I
Tabela Hash Alunos : Gustavo Jorge Zanin nºUSP
Lógica e Teoria dos Conjuntos
Aula Prática: A Ferramenta ZANS
Faculdade Pernambucana - FAPE Setembro/2007
A Linguagem Formal de Especificação VDM-SL
COMPILADORES 04 Prof. Marcos.
INE Fundamentos de Matemática Discreta para a Computação
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Aritmética Em Prolog podemos fazer uso de operadores aritméticos não lógicos pré-definidos pelo sistema, como por exemplo >, >=, +, *, -, etc. A interrogação.
Inteligência Artificial: A Linguagem Prolog (Parte 1)
Programas e Refinamento Programming from Specifications Carroll Morgan Prentice-Hall, 1994 [Capítulo 1] Equipe: Klaus Cavalcante Tarcísio Quirino Raquel.
1 Provas e Proposições Anjolina Grisi de Oliveira Fonte:
Paulo Borba e Augusto Sampaio Departamento de Informática Universidade Federal de Pernambuco Especificação Usando Conjuntos.
Anjolina Grisi de Oliveira
Linguagem de Programação I Parte IV
UCSal – Bacharelado em Informática Tópicos Especiais em Informática II Profa. Semíramis Assis
Programação para Web I AULA 4 ESTRUTURAS DE CONTROLE.
UCSal – Bacharelado em Informática
MATA56 Tipos, Verificação de Tipos Agenda Objetivo desta aula: Introduzir os principais aspectos semânticos de variáveis Palavras-chave – nomes.
SÍMBOLOS PARA CONJUNÇÃO, NEGAÇÃO E DISJUNÇÃO – Cap. 8
1 Lógica de Predicados BCC101 Matemática Discreta I.
Professor: Gerson Leiria Nunes.  Introdução  Filtro IIR  Forma direta  Forma direta implementada.
Transcrição da apresentação:

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

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

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

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

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

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’

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’

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 (!)

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 ^

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

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?)

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’

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?}]  ^ ^ 

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

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

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

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

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

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é, )}

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