SWNE Uma Linguagem Baseada em Predicados Alex Abate Biral Número USP 3462641 Orientador: Marco Dimas Gubitoso.

Slides:



Advertisements
Apresentações semelhantes
TIPOS ABSTRATOS DE DADOS
Advertisements

Pearson Education Slide 1. Pearson Education Slide 2 Cap í tulo 19 Criado por Frederick H. Colclough, Colorado Technical University Standard Template.
ESTRUTURA DE DADOS Professor: Marcelo Mendes Turma: MBI-1
Construção de listas de decisão Os tópicos anteriores tratam de indução de conceitos que podem ser descritos usando uma única região de decisão Neste tópico.
ABSTRAÇÃO processo de representar um grupo de entidades através de seus atributos comuns feita a abstração, cada entidade particular (instância) do grupo.
Paulo Marques Hernâni Pedroso
3 Paradigmas e Linguagens de Programação
LOGICA DE PRIMEIRA ORDEM Cálculo dos Predicados
Lógica Matemática e Computacional 7 – Introdução à Programação Lógica
Paradigmas de Programação
1 Introdução (Informal) à Programação DI/FCT/UNL 1º Semestre 2004/2005.
Prof. Heloise Manica Paris Teixeira
Refatorações Experiência é aquela coisa maravilhosa que permite que você reconheça um erro tão logo o cometa novamente F.P. Jones.
Rafael Pinto Frederico Corrêa
Programação Lógica: PROLOG
Carolina Fonseca Neumar Ribeiro
Introdução a diagrama de classes e UML
Curso Sistemas de Informação Disciplina: Arquitetura de Software
Construção de Compiladores
Introdução ao -calculus
Complexidade de Algoritmos
Laboratório de Programação de Computadores I
INF 1771 – Inteligência Artificial
Vinicius Ponte Machado
Prolog Programação Lógica Ícaro A. Souza.
COMO FUNCIONA A SIMULAÇÃO
Aula prática 13 Orientação a Objetos – C++ Parte 1
Aula prática 6 Vetores e Matrizes
Linguagem de Programação II Parte IX
Linguagens Orientadas a Objeto
Conceitos de Linguagem de Programação
Desenvolvimento de Sistemas Orientados a Aspectos
Desenvolvimento de Sistemas Orientados a Aspectos
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Prolog Paradigma Declarativo - Lógico
CADEIA DE CARACTERES (Strings)
Aula prática 6 Vetores e Matrizes
Paradigmas da Programação – Semestre 1 – Aula 2 Professores: Eduardo Mantovani Fábio de Paula.
Conjuntos (continuação)
Verificação de Tipos e Escopos
Estudo dos Conceitos e Paradigmas de Programação
Tipos Abstratos de Dados
Sistema de equações lineares
Paradigmas de Linguagens de Programação Linguagem Imperativa 1
Uma Breve Introdução á programação lógica
Sistemas Especialistas
Linguagens de Programação II
UML Diagrama de classes.
Paradigma funcional.
Módulo I Capítulo 5: Vetores
Paradigmas de Linguagens de Programação Aula 2
Paradigmas da Programação – Semestre 1 – Aula 9 Professor: Eduardo Mantovani )
Princípios da Programação em Prolog
Aula 1 – Profª Danielle Costa
PCS - Departamento de Engenharia de Computação e Sistemas Digitais Projeto de Formatura – Turmas 2010 Integrantes: Professor Orientador: Co-orientador:
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Programação Lógica com Prolog
Conceitos de Orientação a Objetos zConceito de tipo zTipos Abstratos de Dados zMódulos/Pacotes zEncapsulamento.
Paradigmas de Linguagens de Programação Conceitos da Linguagem Imperativa 1 Augusto Sampaio e Paulo Borba Centro de Informática Universidade Federal de.
Engenharia de Software
Equipe: Bruno Barbosa Felipe Fernandes Waleska Dias.
Estrutura de Dados II Alocação Dinâmica. Alocação de memória Ao ser executado, um programa carrega seu código executável para a memória; Uma parte da.
Estruturas de Dados Murilo Salgado Razoli.
Módulo II Capítulo 1: Orientação a Objetos
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
1 Database Systems, 8 th Edition Sistemas de Banco de Dados: Projeto, Implementação e gestão Oitava Edição Capítulo 2 Modelo de Dados.
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
CIn.ufpe.br CSP-Z Disciplina: Especificação de Sistemas Distribuídos Mestrado em Ciências da Computação Aleciano Jr. Leonilson Barbosa.
Sistemas de Produção Jacques Robin CIn-UFPE. Roteiro  Definição de um sistemas de produção  Regras de produção  Inferência com regras de produção 
Transcrição da apresentação:

SWNE Uma Linguagem Baseada em Predicados Alex Abate Biral Número USP Orientador: Marco Dimas Gubitoso

Despacho Linguagens Orientadas a Objeto introduziram o Despacho Dinâmico sobre classe. Generalizações: Despacho Múltiplo, Classes Predicativas, Despacho por Padrões. Caso mais genérico: Despacho por Predicados.

Predicados Predicados dinâmicos são definidos por uma simples função booleana. Predicados estáticos são conjuntos de objetos. Predicados estáticos podem definir a estrutura de seus membros. Um predicado pode implicar em outros, ou ser mutualmente exclusivo. Isto cria uma ordenação parcial.

Objetos Todos os substantivos do sistema são objetos. Objetos “imutáveis” são valores, e podem ser representados de diversas maneiras. Objetos mutáveis são entidades, e possuem uma identidade constante.

Variáveis Quando uma variável é declarada, podemos limitála a uma lista de predicados. Isso permite que o compilador procure por erros de lógica em tempo de compilação. Também pode funcionar como asserts em tempo de execução (mas é lento). Como usamos clausuras, os predicados também podem representar assinaturas.

Dinâmica de Despacho Ordenamos os predicados de maneira a criar uma ordem total. A partir desta ordenação, ordenamos todas as assinaturas de uma função. A ordenação garante que uma assinatura mais específica é checada primeiro. Fora a isso, o sistema usa a ordem inversa de declaração.

Conclusões É possível montar uma linguagem onde o despacho por predicados é a mecânica principal. Não é necessáriamente bom reduzir uma mecânica a sua forma mais genérica, mas pode ser útil para criar um sistema mais expressivo. É possível melhorar o sistema de despacho, mas é necessário desenvolver bem o algoritmo.

Trabalhos Futuros Usar predicados para visualisar versões das funções. Desenvolver um sistema lógico similar a prolog para trabalhar com os algoritmos. Tornar a linguagem auto-referencial, permitindo que predicados e variáveis usem também o despacho por predicados.