Equipe: Fernando Calheiros Flavia Leite Eduardo Wagner

Slides:



Advertisements
Apresentações semelhantes
Projeto 1.
Advertisements

Elsa Carvalho 49 Universidade da Madeira Departamento de Matemática e Engenharias Programação em Lógica e Funcional (2000/01) (Actualizado em 2005/06)
Nice Maria Americano da Costa
EQUAÇÕES QUÍMICAS.
Carlos R. M. Junior Eduardo Motta
Eduardo Bezerra Padrões GoF (State) Eduardo Bezerra
Animador para a Linguagem Funcional 2 Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Lucena.
Hashing (Espalhamento)
LINGUAGEM C.
Centro Integrado de Tecnologia da Informação
Sobrecarga e Declaração de Operadores Rafael Fonseca e Romeu Guimarães.
Linguagem OperOR Agenda Descrição da Linguagem Funcionalidades BNF Limitações e Dificuldades Desenvolvimento Exemplos Dificuldades.
Estrutura de Dados em Java
Buscas em Grafos Prof. André Renato 1º Semestre/2012
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Implementar Listas em Linguagem Funcional II
ES – 2º Apresentação Teórica. Rename Method O nome de um método não revela o seu propósito.Motivação Métodos devem ser chamados de uma forma que comuniquem.
Sub-programas. Mecanismo de composição de programas Sub-programa está para peça de LEGO assim como um programa está para a construção.
Aula prática - análise contextual
PROGRAMAÇÃO ESTRUTURADA II
Padrão de Projeto Visitor
DIAGRAMA DE CLASSE Modelagem de Software
GEJAVA IV SCJA – Certificação Sun java associado exame cx
Programação Orientada à Objetos
Oberdan B. Ferreira Polimorfismo Oberdan B. Ferreira
Técnicas de Integração
Estudo dos Conceitos e Paradigmas de Programação
Paradigmas de Linguagens de Programação Linguagem Imperativa 2
Linguagem Funcional 2 Linguagem Funcional 2 - LF2 Estende LF1 com funções de alta ordem Uma função passa a ser um valor O contexto inclui um único componente:
Paradigma Funcional Apresentação de LF1.
Equipe: Fernando Calheiros Flavia Leite Eduardo Wagner
1. Se este nó é raiz de uma árvore QuasiEquilibrada de ordem k, e
Projeto de PLP Resultado Final Guilherme Oliveira Everton Marques
1 PLP – Varargs Adauto Trigueiro de A. Filho Emanoel Barreiros Helaine Lins.
PROGRAMAÇÃO - INTRODUÇÃO George Gomes Cabral. DECOMPOSIÇÃO Dividir para conquistar: Paradigma básico para tratamento de grandes problemas. Nossa meta.
Funções de várias variáveis
Análise Orientado aos Objetos Prof. Wolley W. Silva
Projeto de Tradutor Preditivo. Introdução Introdução Esquemas L-atribuidos são reconhecidos por analisadores Top-Down. Entre estes analisadores, se encontra.
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Cálculo Lambda (l – Calculus)
94 Elsa Carvalho Universidade da Madeira Departamento de Matemática e Engenharias Programação em Lógica e Funcional (2000/01) (Actualizado em 2005/06)
AFORTUNADOS. Meus Amigos, que isto não chegue até nós,
Prof.: Sergio wagner.
O que são? (clique para passar os slides)
Recursividade Profs. De Prog2 e Lab2.
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
Algoritmos.
PLP – Paradigma de Linguagens de Programação
Abstract Factory Pattern Algumas aplicações precisam criar objetos de classes que podem mudar ex: elementos de um sistema GUI. –Diferentes padrões precisam.
April 05 Prof. Ismael H. F. Santos - 1 Módulo III Padrões GOF: State Professores Eduardo Bezerra –
Fernando Luiz Pellegrini Pessoa UNIVERSIDADE FEDERAL DO RIO DE JANEIRO
Crédito Prof. Eduardo Nobre Lages EES/CTEC/UFAL
2 – Revisão de Programação Orientada a Objetos
Projeto II - PLP Prof. Augusto Sampaio
Aula Prática – F# Programação Funcional –
Linguagem de Programação I Parte IV
Padrão Visitor Paulo Mauricio Gonçalves Jr Rodrigo Teixeira Ramos Paradigmas de Linguagens de Programação Prof. Augusto Sampaio Julho de 2003.
Análise Semântica e Representação Intermédia
Laboratório de Programação II Método main Dados e Métodos de Classes.
Programação Orientada a Objetos para Redes de Computadores Prof. Miguel Elias Mitre Campista POO para Redes de Computadores.
Implementar Listas em Linguagem Funcional II Projeto I - PLP Prof. Augusto Sampaio Equipe :Ana Paula Cavalcanti (apcc2) Clélio Feitosa (cfs) Zildomar C.
Aula 5 – Padrão Decorator
Programação para Web I AULA 2 BANCO DE DADOS.
Fundamentos de Engenharia de SW Diagramas da UML Usados no Projeto de Software.
ÁLGEBRA - POLINÓMIOS.
Projeto de Arquitetura de Software
Revisão Turma – WEB JavaScript.
Estrutura de Dados Prof. André Cypriano M. Costa
1 Programação Multi-Paradigma Cristiano Bertolini – Ellison Siqueira – Guilherme Avelino –
Algoritmos com matrizes e vetores
Transcrição da apresentação:

Equipe: Fernando Calheiros Flavia Leite Eduardo Wagner Renata Bezerra Avaliação Parcial de Funções

Relembrando PartialInstatiatorVisitor Faz a avaliação parcial de funções Não é propriamente um Visitor No padrão visitor cada classe sabe se visitar, recebendo o visitor em um método visit PartialInstatiatorVisitor utiliza reflexão para determinar qual método visit dele mesmo deve ser chamado, deixando a estrutura original intocada

Novo Visitor Não copiar código Utilizar o padrão visitor Reutilizar as classes existentes

Problema

Funções parciais let fun add x = fn y. x + y in let var id = add(0) in id(1) Avaliação parcial de add(0): fn y. 0 + y fn y. y

Avaliação parcial Praticamente todas as classes foram copiadas para LF2 avaliar() não deve retornar Valor Nova assinatura: Expressao avaliar(AmbienteExecucao amb) throws VariavelNaoDeclaradaException, VariavelJaDeclaradaException; Todas as classes que estendem Expressao foram modificadas

Avaliação parcial de expressões Soma Avalia-se o lado esquerdo e o lado direito da soma Caso feliz: Ambos são inteiros, retornar um ValorInteiro com a soma dos dois O que acontece quando não consigo avaliar x + 0 no exemplo mostrado anteriormente? Retorna-se uma nova ExpSoma com os lados esquerdo e direito avaliados parcialmente (sendo possível que um esteja avaliado completamente) Pelo menos um dos lados foi avaliado parcialmente

Mudança no Ambiente ContextoExecucao agora é parametrizado com Expressao, ao invés de Valor Ids podem ser associados a expressões parcialmente avaliadas Não apenas ValorFuncao parcialmente avaliado! Tudo pode ser parcialmente avaliado agora

Avaliação de Id Procura no contexto Id não encontrado Avaliação falha Id encontrado Com Expressao Retorna a expressao Sem expressao Retorna o próprio Id

Avaliação de ValorFuncao Coloca no ambiente os ids dos parâmetros Caso o resultado da avaliação seja um valor concreto Retorna o valor obtido Se não... Retorna um novo ValorFuncao com a expressão parcialmente avaliada

Melhores resultados Retorna funções mais bem avaliadas Especialmente com composição de funções Nem sempre! Não reduz as operações binárias ao menor valor possível