Lenguajes De Programación Funcional

Páginas: 7 (1511 palabras) Publicado: 25 de octubre de 2015
Lenguajes de programación funcional
Scheme
Mostacero Espinoza, Guido
(guidomz_94@hotmail.com)
Culquichicon Paucar, Alex
(alex_@hotmail.com)
Celiz Izaga, Erick
(erick_12@hotmail.com)

Ingeniería Informática
Universidad Nacional de Trujillo


Resumen: Podemos encontrar, en casi todos los lenguajes de programación funcional, un núcleo común de conceptos y técnicas asentado sobre bases firmementeestablecidas. En esta asignatura estudiamos los fundamentos de la programación funcional y su utilización en la definición de implementaciones correctas y eficientes de los lenguajes de programación que se enmarcan en este paradigma.
Palabras Claves: Scheme, lazy, eager, Lisp.
Summary: Can we find, in almost all functional programming languages, a common core of concepts and nestled firmlyestablished foundation techniques. In this course we study the basics of functional programming and its use in the identification of good and efficient programming languages that fall under this paradigm implementations.
Keywords: Scheme, lazy, eager, Lisp.
1. Introducción
En programación funcional, un programa consta de:
un conjunto de operaciones primitivas cuyo significado está predeterminado en elsistema. Por ejemplo, la suma de números enteros, la resta, el producto, etc.
un conjunto de definiciones de función, establecidas por el programador, que eventualmente emplearán las operaciones primitivas. Por ejemplo, la función factorial.
un dato de entrada (entendido como la aplicación de una de las funciones definidas sobre otros datos). Por ejemplo: fact(2*fact(2)).
La ejecución del programafuncional consiste en el cálculo del valor asociado al dato de entrada de acuerdo con las definiciones dadas para las funciones en el programa. El proceso de cálculo de dicho valor se conoce como evaluación del dato de entrada. Dicha evaluación puede realizarse de muchas formas, pero hay dos estrategias fundamentales para llevarla a cabo: la estrategia voraz (eager) y la estrategia perezosa(lazy).La elección de una u otra tiene importantes repercusiones en la implementación y en el comportamiento operacional del proceso de evaluación.
Problema del Modelo Imperativo
Los programas escritos en lenguajes de programación tradicionales como Pascal, C, ADA, etc. Forman una abstracción de la máquina de Von-Neumann caracterizada por: Memoria Principal para almacenamiento de datos y código máquina;yUnidad Central de Proceso con una serie de registros de almacenamiento temporal y un conjunto instrucciones de cálculo aritmético, modificación de registros y acceso a la Memoria Principal.
Los programas imperativos están formados por una serie de datos globales y un conjunto de instrucciones ó código. Estos dos elementos forman una abstracción de los datos y código de la memoria principal.
Elprogramador trabaja en un nivel cercano a la máquina lo que le permite generar programas eficientes. Con esta proximidad aparece, sin embargo, una dependencia entre el algoritmo y la arquitectura que impide, por ejemplo, utilizar algoritmos programados para arquitecturas secuenciales en arquitecturas paralelas.
Los algoritmos escritos en lenguajes imperativos se expresan mediante una secuencia deinstrucciones que modifican el estado de un programa accediendo a los datos globales de la memoria. En este punto es donde empiezan los problemas:
Ejemplo
Program prueba;
var flag:boolean;
function f (n: integer):integer;
begin
flag:=not flag;
if flag then f:=n;
else f:=2*n;
end;
........
--Programa principal
begin
flag:=true;
......
write(f(1)); ß retorna 2
write(f(1)); ß retorna 1
.......write(f(1) + f(2)); ß retorna 4
write(f(2) + f(1)); ß retorna 5

En el primer caso la expresión f(1) retorna valores diferentes dependiendo de la secuencia de ejecución y en el segundo no se cumplen propiedades matemáticas simples tales como la conmutatividad. Estos ejemplos ponen en evidencia que ciertas características de los lenguajes imperativos tales como la asignación pueden traer consigo efectos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • programación funcional
  • Programación Funcional
  • Programacion Funcional
  • Programación Funcional
  • Programación funcional
  • Lenguajes funcionales
  • Lenguajes funcionales
  • Lenguajes funcionales

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS