Projeto 1 de PLP Equipe: Daniel Leitão (dal) Dante Torres (dgt) Pablo Sampaio (pas)
description
Transcript of Projeto 1 de PLP Equipe: Daniel Leitão (dal) Dante Torres (dgt) Pablo Sampaio (pas)
22/06/2004 Centro de Informática - UFPE
Projeto 1 de PLPEquipe: Daniel Leitão (dal)
Dante Torres (dgt)Pablo Sampaio (pas)
Implementação de Lazy Evaluation a partir da Linguagem Funcional 2
22/06/2004 Centro de Informática – UFPE Projeto de PLP
Sumário
Lazy Evaluation Projeto Proposto Alterações em LF2 Exemplos
22/06/2004 Centro de Informática – UFPE Projeto de PLP
Lazy Evaluation
Consiste na avaliação dos argumentos de uma função somente no momento em que forem utilizados pela primeira vez, e não imediatamente no momento da chamada da função.
Exemplo: let fun f1 a b = a in
f1(2,1/0)
22/06/2004 Centro de Informática – UFPE Projeto de PLP
Projeto Proposto
Estende LF2 com: Lazy Evaluation
Parâmetros de funções Váriaveis locais (em let) Curto-circuito (operadores or e and) Otimização
Novos operadores Aritméticos: divisão (/) e multiplicação (*) Relacionais: menor (<) e maior (>)
22/06/2004 Centro de Informática – UFPE Projeto de PLP
Principais Alterações em LF2
Interface AmbienteExecucaoLazy void mapExpressao (Id idArg, Expressao exp) Expressao getExpressao(Id idArg) void atualizaId (Id idArg, Expressao expI d)
Classe ContextoExecucaoLazy Implementação da interface
AmbienteExecucaoLazy
22/06/2004 Centro de Informática – UFPE Projeto de PLP
Principais Alterações em LF2
Interface Expressao Valor avaliar (AmbienteExecucaoLazy amb)
Classe ExpDeclaracao void includeBindings (
AmbienteExecucaoLazy ambiente,Map auxIdExpressao,Map auxIdValorFuncao)
22/06/2004 Centro de Informática – UFPE Projeto de PLP
Principais Alterações em LF2
Classe Aplicacao Map resolveParametersBindings (
AmbienteExecucaoLazy ambiente, ValorFuncao funcao)
void includeValueBindings ( AmbienteExecucaoLazy ambiente,Map mapIdExp)
Classe Id Valor avaliar(AmbienteExecucaoLazy ambiente)
22/06/2004 Centro de Informática – UFPE Projeto de PLP
Principais Alterações em LF2
Classe ExpOr Valor avaliar(AmbienteExecucaoLazy ambiente)
Classe ExpAnd Valor avaliar(AmbienteExecucaoLazy ambiente)
22/06/2004 Centro de Informática – UFPE Projeto de PLP
Exemplos
http://www.cin.ufpe.br/~dgt/PLP/pagina/