3. Sintaxe e Semântica.

Slides:



Advertisements
Apresentações semelhantes
Estruturação de Linguagens (Pascal e C++)
Advertisements

Lógica de Predicados e Representação de Conhecimento
Capítulo 8 A linguagem da Lógica de Predicados
Capítulo 7 Tableaux semânticos e resolução na Lógica Proposicional
Capítulo 1 A linguagem da Lógica Proposicional
Linguagens Formais e Autômatos
Tipos de dados, Variáveis, Expressões e Operadores
Lógica de Predicados Sintaxe. O que não é possível expressar em Lógica Prop. Todo tricolor é um campeão. Roberto é tricolor. Logo Roberto é um campeão.
Lógicas em Dedução Natural
Conteúdo: - Estrutura de Dados Homogênea.
Introdução à Programação Lógica
Introdução à Linguagem Prolog
Cálculo Relacional Datalog não-recursivo
Resolução.
LINGUAGEM C.
Programação para Engenharia I
Polinômios Prof. Marlon.
Linguagem PHP Prof.: Sergio Pacheco Prof.: Sergio Pacheco 1 1.
01(c) 2007 Gustavo Motta1 Introdução ao -calculus Prof. Gustavo Motta Departamento de Informática/UFPB.
6. Backtracking e Controle
2. A Linguagem Prolog.
Ponteiros.
Introdução a Programação JAVA
A Lógica das Sentenças Abertas Profa. Ana Florencia Aula 9
INF 1771 – Inteligência Artificial
Noção de conjuntos, suas representações e conceitos fundamentais
INF 1771 – Inteligência Artificial
INF 1771 – Inteligência Artificial
Conceitos Básicos.
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Inteligência Artificial: A Linguagem Prolog (parte 2)
Semana 03: Comandos de desvio de fluxo. Expressões lógicas.
Sintaxe e Semântica do PROLOG.
Aula Prática - Prolog Sistemas Inteligentes /~if684
LISTAS Uma lista é uma estrutura de dados muito comum na programação não numérica (com particular destaque na computação simbólica onde representa quase.
Prolog Programação Lógica Ícaro A. Souza.
Aula Prática - Prolog Sistemas Inteligentes /~if684
Lógica de Predicados Teorema de Herbrand.
Capítulo 5 Relações semânticas entre os conectivos da Lógica Proposicional
Estrutura de dados, pseudocódigo
Gramáticas Livres de Contexto
Introdução a Lógica Prof. Luiz Carlos Gabi.
Linguagens lógicas 2013 – Luiz Mauricio Nascimento Silva
Semana 03 Comandos de desvio de fluxo. Expressões lógicas.
Construção Tabela-verdade
SEMÂNTICA.
Lógica de Predicados Sintaxe.
CAPÍTULO 2 - CONJUNTOS.
Sistemas Especialistas
A transformada de Laplace
Procedimentos Pré-definidos em prolog comunicação
Algoritmos e Estruturas de Dados I – Ponteiros
Campus de Caraguatatuba Aula 2: Somatório e Produtório
Faculdade Talentos Humanos - FACTHUS - Algoritmo I - Rogério Rodrigues
Análise e Projeto de Sistemas
Lógica matemática.
3. Introdução à Linguagem C
Campus de Caraguatatuba
Sistemas Especialistas Podem ser definidos como programas de computador desenvolvidos para representar o conhecimento humano num dado domínio específico.
M ONITORIA DE L ÓGICA Lógica de Predicados: interpretação, estruturas e subestruturas 1.
BCC101 Matemática Discreta I
Matemática Discreta 1 – MD 1
CENTRO FEDERAL DE EDUCAÇÃO TECNOLÓGICA ENGENHARIA DE AUTOMAÇÃO INDUSTRIAL UNIDADE 4 Itens fundamentais para Desenvolvimento de algoritmos.
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Inteligência Artificial: Lógica Proposicional e Prolog
CES-10 INTRODUÇÃO À COMPUTAÇÃO
Inteligência Artificial: A Linguagem Prolog (Parte 1)
Lógica de Programação Aula 06 Prof. Marcelo Marcony.
Inteligência Artificial Objetos em Prolog  Esta aula introduz objetos de dados simples e estruturados  Os tópicos abordados são:  Objetos simples (átomos,
3. Sintaxe e Semântica.
Transcrição da apresentação:

3. Sintaxe e Semântica

Objetos Prolog Termos Simples Constantes Estruturados Átomos Variáveis Números Introdução à Programação Prolog

Alfabeto Pontuação: ( ) . ' " Conetivos: , (conjunção) ; (disjunção) :- (implicação) Letras: a, b, c, ..., z, A, B, C ... Z Dígitos: 0, 1, 2, ..., 9 Especiais: + - * / < > = : _ ... etc. SWI-Prolog: UNICODE: ç, à, ã, ê, é, ó, ü ... etc. Introdução à Programação Prolog

Átomos a. Cadeias de letras e/ou dígitos, podendo conter o caracter especial sublinhado (_), iniciando obrigatoriamente com letra minúscula. socrates x_y nil mostraMenu x47 a_b_1_2 b. Cadeias de caracteres especiais. <--------> ::= =/= c. Cadeias de caracteres quaisquer, inclusive espaços em branco, desde que delimitados por apóstrofos ('). 'D. Pedro I' 'representação de conhecimento' ’23 de abril de 2007’ Introdução à Programação Prolog

Números a. Inteiros: 1 1812 0 -273 b. Reais (Ponto Flutuante): 1 1812 0 -273 b. Reais (Ponto Flutuante): 3.14159 0.000023 -273.16 Notação Exponencial: 2.180765e-34 Introdução à Programação Prolog

Variáveis Variáveis Prolog são cadeias de letras, dígitos e do caracter sublinhado (_), devendo iniciar com este ou com uma letra maiúscula. O caracter "_", sozinho, representa uma variável anônima, isto é, sem interesse para um determinado procedimento. Exemplos de variáveis são: X, Y, Z, ... Resultado Objeto2 Lista_de_Associados _var35 _194 _ (variável anônima) Introdução à Programação Prolog

Objetos Estruturados data(13, outubro, 1993) data data functor argumentos Introdução à Programação Prolog

Termos Sintaticamente, todos os objetos em Prolog são denominados termos. O conjunto de termos Prolog é o menor conjunto que satisfaz às seguintes condições: Toda constante é um termo; Toda variável é um termo; Se t1, t2, ..., tn são termos e f é um átomo, então f(t1, t2, ..., tn) também é um termo, onde o átomo f desempenha o papel de um símbolo funcional n-ário. Introdução à Programação Prolog

Unificação Dados dois termos, diz-se que eles unificam se: Eles são idênticos, ou As variáveis de ambos os termos podem ser instanciadas com objetos de maneira que, após a substituição das variáveis por esses objetos, os termos se tornam idênticos. Por exemplo, os termos data(D, M, 2007) e data(X, março, A) unificam. Uma instanciação que torna os dois termos idênticos é: D é instanciada com X; M é instanciada com março; A é instanciada com 2007. Introdução à Programação Prolog

O Operador de Unificação O operador de unificação é representado por “ = “ (=/2). Este operador não tem a mesma semântica da igualdade aritmética e atua tentando unificar os termos existentes à sua direita e esquerda. Por exemplo, a operação ponto(X,2) = ponto(3,Y) resulta bem sucedida com X instanciada com 3 e Y com 2. Já as operações ponto(X,2) = ponto(Y,3) e k1(Z) = k2(a) não são bem sucedidas, não ocorrendo instanciação. Por quê? Introdução à Programação Prolog

Regra Geral Dados dois termos, S e T e a operação S = T: Se S e T são constantes, então S e T unificam somente se ambos representam o mesmo objeto; Se S é uma variável e T é qualquer coisa, então S e T unificam com S instanciada com T. Inversamente, se T é uma variável, então T é instanciada com S; Se S e T são estruturas, unificam somente se: S e T tem o mesmo functor principal, e todos os seus componentes correspondentes também unificam. A instanciação resultante é determinada pela unificação dos componentes. Introdução à Programação Prolog

Interpretações Semânticas Declarativa: Não depende da ordem das cláusulas nem da ordem dos objetivos dentro das cláusulas. Procedimental: Depende da ordem dos objetivos e cláusulas. Aqui a ordem pode afetar a eficiência de um programa. Operacional: Representa um procedimento para satisfazer a lista de objetivos no contexto de um dado programa. A saída desse procedimento é o valor-verdade da lista de objetivos com a respectiva instanciação de sua variáveis. Introdução à Programação Prolog

Execução do Prolog executor programa objetivos sucesso/falha instanciações Introdução à Programação Prolog

Exercícios Quais dos seguintes objetos estão sintaticamente corretos e a que tipo de objeto pertencem? a. Daniela b. daniela c. 'Daniela' d. _daniela e. 'Daniela vai a Paris' f. vai(daniela, paris) g. 8118 h. 2(X, Y) i. +(sul, oeste) j. ^(X, 2) k. três(Cavalos(Baios)) Introdução à Programação Prolog

Exercícios Quais das seguintes operações de unificação serão bem sucedidas e quais irão falhar? Para as que forem bem sucedidas, quais são as instanciações de variáveis resultantes? a. ponto(A, B) = ponto(1, 2) b. ponto(A, B) = ponto(X, Y, Z) c. mais(2, 2) = 4 d. +(2, D) = +(E, 2) e. t(p(-1,0), P2, P3) = t(P1, p(1, 0), p(0, Y)) Introdução à Programação Prolog