Prévia do material em texto
ISBN 0-321-19362-8 Paradigmas de Linguagens de Programação Funcional 15-* 15-* Introdução O projeto de linguagens imperativas é baseado diretamente na arquitetura von Neumann Eficiência é geralmente a preocupação primeira, em vez da adequação ao desenvolvimento de software 15-* 15-* Introdução O projeto de linguagens funcionais é baseado em funções matemáticas Uma base teórica sólida, mais próxima do usuário. Relativamente despreocupada com a arquitetura dos computadores onde os programas serão usados. 15-* 15-* Fundamentos de Linguagens de Programação Funcional O objetivo de uma LPF é simular funções matemáticas o máximo possível O processo básico de computação é fundamentalmente diferente das linguagens imperativas Em uma linguagem imperativa, operações são executadas e o resultado é armazenado em variáveis para uso posterior Gerenciamento das variáveis é uma preocupação constante e origem da complexidade em linguagens imperativas Em uma LPF, variáveis não são necessárias, como acontece em funções matemáticas 15-* 15-* Fundamentos de Linguagens de Programação Funcional Em uma LPF, a avaliação de uma função sempre produz o mesmo resultado, dados os mesmos parâmetros Isso é chamado Transparência Referencial 15-* 15-* Aplicações de Linguagens Funcionais APL é usada para protótipos LISP é usada para inteligência artificial Representação do conhecimento Aprendizado de máquina Processamento em linguagem natural Modelagem de visão e voz Scheme é usado para ensinar programação introdutória em muitas universidades 15-* 15-* Comparando Linguagens Funcionais e Imperativas Linguagens Imperativas : Execução eficiente Semântica complexa Sintaxe complexa Concorrência é projetada pelo programador Linguagens Funcionais : Semântica simples Sintaxe simples Execução ineficiente Programas podem ser tornados concorrentes automaticamente