Sie sind auf Seite 1von 12

Universidad Nacional Experimental

De Los Llanos Occidentales


Ezequiel Zamora
UNELLEZ-Barinas

PARADIGMA FUNCIONAL

3
4
4
Barinas, Mayo del 2012.
NDICE
INTRODUCCIN.

4-6
7
8
PG.
9
10
11

Paradigma Funcional
Definicin.
Historia..
Lenguajes Funcionales
Caractersticas.
Modelo Funcional (de Labra 1998)
CONCLUSIN.
REFERENCIAS BIBLIOGRFICAS

INTRODUCCIN

Un paradigma de programacin es una forma especfica de realizar las


computaciones. Un lenguaje de programacin siempre sigue un paradigma o
una mezcla de varios;
El paradigma del que trata este artculo se denomina funcional,
programacin funcional o FP; el cual ser objeto de estudio en su definicin,
caractersticas y lenguajes de dicho paradigma, como lo es el funcional.

Paradigma Funcional
Definicin
En un sentido estricto, la programacin funcional define un programa
como una funcin matemtica que convierte unas entradas en unas salidas,
sin ningn estado interno y ningn efecto lateral.
Historia
Los orgenes tericos del modelo funcional se remontan a los aos 30
en los cuales Church propuso un

nuevo modelo de estudio de la

computabilidad mediante el clculo lambda. Este modelo permita trabajar


con funciones como objetos de primera clase. En esa misma poca,
Shnfinkel y Curry construan los fundamentos de la lgica combinatoria que
tendr gran

importancia para la

implementacin de los lenguajes

funcionales.
Hacia 1950, John McCarthy dise el lenguaje LISP (List Processing)
que utilizaba las listas como tipo bsico y admita funciones de orden
superior. Este lenguaje se ha convertido en uno de los

lenguajes ms

populares en el campo de la Inteligencia Artificial. Sin embargo, para que el


lenguaje fuese prctico, fue necesario incluir caractersticas propias de los
lenguajes imperativos como la asignacin destructiva y los efectos laterales
que lo alejaron del paradigma funcional. Actualmente ha surgido una nueva
corriente

defensora

de

las

caractersticas

funcionales

del

lenguaje

encabezado por el dialecto Scheme, que aunque no es puramente funcional,


se acerca a la definicin original de McCarthy.

En 1964,

Peter Landin

dise la mquina abstracta SECD para

mecanizar la evaluacin de expresiones, defini un subconjunto no trivial de


Algol-60 mediante el clculo lambda e introdujo la
ISWIM con innovaciones sintcticas (operadores

familia de

lenguajes

infijos y espaciado) y

semnticas importantes.
En 1978 J. Backus (uno de los diseadores de FORTRAN y ALGOL)
consigui que la comunidad

informtica prestara mayor atencin a la

programacin funcional con su artculo Can Programming be liberated from


the Von Neumann style? En el que criticaba las bases de la programacin
imperativa tradicional mostrando las ventajas del modelo funcional.
Adems Backus dise el lenguaje funcional (FP) con la filosofa de
definir nuevas funciones combinando otras funciones.
A mediados de los 70, Gordon trabajaba en un sistema generador de
demostraciones denominado LCF que inclua el lenguaje de programacin
ML (Metalenguaje). Aunque el sistema LCF era interesante, se observ que
el lenguaje ML poda utilizarse como un

lenguaje de propsito general

eficiente. ML optaba por una solucin de compromiso entre el modelo


funcional y el imperativo ya que, aunque contiene asignaciones destructivas
y Entrada/Salida con efectos laterales, fomenta un estilo de programacin
claramente funcional. Esa solucin permite que los sistemas ML compitan en
eficiencia con los lenguajes imperativos.
A mediados de los ochenta se realiz un esfuerzo de estandarizacin
que culmin con la definicin de

SML (Stndar ML). Este lenguaje es

fuertemente tipado con resolucin esttica de tipos, definicin de funciones


polimrficas y tipos abstractos. Actualmente, los sistemas en SML compiten
en eficiencia con los sistemas en otros lenguajes imperativos.

A comienzos de los ochenta surgieron una gran cantidad de lenguajes


funcionales debido a los avances en las tcnicas de implementacin. Entre
stos, se podran destacar Hope, LML, Orwell, Erlang, FEL, Alfl, etc. Esta
gran cantidad de lenguajes perjudicaba el desarrollo del paradigma funcional.
En septiembre de 1987, se celebr la conferencia FPCA en la que se decidi
formar un comit internacional que disease un nuevo lenguaje puramente
funcional de propsito general denominado Haskell.
Con el lenguaje Haskell se pretenda unificar las caractersticas ms
importantes de los lenguajes funcionales. como las funciones de orden
superior, evaluacin perezosa, inferencia esttica de tipos, tipos de datos
definidos por el usuario, encaje de patrones y listas por comprensin. Al
disear el lenguaje se observ que no exista un tratamiento sistemtico de
la sobrecarga con lo cual se construy una nueva solucin conocida como
las clases de tipos.
El lenguaje incorporaba, adems, Entrada/Salida puramente funcional
y definicin de arrays por comprensin.
Durante casi 10 aos aparecieron varias versiones del lenguaje
Haskell, hasta que en 1998 se decidi proporcionar una versin estable del
lenguaje, que se denomin Haskell98, a la vez que se continuaba la
investigacin de nuevas caractersticas y nuevas extensiones al lenguaje.

Lenguajes Funcionales. Se podra considerar como uno de los


primeros lenguajes funcionales al LISP, que actualmente sigue en uso, sobre
todo en reas de la inteligencia artificial. Tambin un pionero de este
paradigma es APL desarrollado en los aos 60 (Iverson 1962). El linaje
funcional se enriqueci en los aos 70, con el aporte de Robin Milner de la
Universidad de Edimburgo al crear el lenguaje ML. ste se subdividi
posteriormente en varios dialectos tales como Objective Caml y Standard
ML. A fines de los aos 80, a partir de un comit, se cre el lenguaje Haskell,
en un intento de reunir varias ideas dispersas en los diferentes lenguajes
funcionales (un intento de estandarizar el paradigma). Microsoft Research ha
incluido un nuevo lenguaje (funcional), denominado F#, a su plataforma.NET.

LISP es el primer lenguaje de programacin de alto nivel basado en


el paradigma funcional. Creado en 1958 por John McCarthy.

LISP es un lenguaje revolucionario e introduce nuevos conceptos de


programacin: funciones como objetos primitivos, funciones de orden
superior, polimorfismo, listas, recursin, smbolos, homogeneidad de
datos y programas, bucle.

La herencia del LISP llega a lenguajes derivados de l (Scheme,


Golden Common LISP) y a nuevos lenguajes de paradigmas no
estrictamente funcionales, como C#, Python, Ruby o Scala

Principales Caractersticas

Programacin declarativa.
no existe la asignacin ni el cambio de estado en un programa.
Basado en funciones.
Ausencia de efectos colaterales.
Si son funciones devuelven un nico resultado.
No hay rdenes, slo expresiones.
Recursin.
Funciones como tipos de datos primitivos y funciones de orden
superior.
Polimorsmo.
Smbolos y dualidad entre datos y programa
Evaluacin sin efectos laterales.
Funciones como tipos de datos de primer orden.
mbitos de variables.
Listas como elemento fundamental de procesamiento.

Modelo Funcional (de Labra 1998).

CONCLUSIN
La programacin funcional es un paradigma de programacin muy
poderoso, que nos permite pensar de una forma completamente diferente
cuando tenemos que resolver un problema, ms parecido a la lgica y
matemtica de alto nivel, que a las abstracciones artificiales de la mquina
de Von Neumann. Es un camino para mejorar la Ingeniera del Software, ya
que sus programas carecen de efectos colaterales, y otros desafortunados
productos de la arquitectura tradicional de las computadoras, siendo
sencillamente evaluaciones.

El estilo de la programacin funcional puede ser usado y lo est


siendo cada vez ms en lenguajes imperativos (Ejemplo: PASCAL) por las
mismas razones por las cuales el uso de los lenguajes funcionales se ha
incrementado: la simplicidad de la semntica y la resultante claridad de los
programas. El requerimiento bsico para programar funcionalmente en
cualquier lenguaje es que el mismo permita la recursin as como un
mecanismo de funciones general y adecuado.

Un problema tpico en este estilo de programacin es el costo de


ejecucin de los ciclos mediante la recursin. Incluso con los procesadores
modernos, que reducen sustancialmente la sobrecarga de la llamada a
procedimiento, las implementaciones recursivas son ms lentas que las que
usan los ciclos estndar.

10

REFERENCIAS BIBLIOGRFICAS

Abelson & Sussman (2010); El paradigma de programacin funcional;


Universidad de Alicante, Departamento de Ciencia de la Computacin
e Inteligencia Artificial; Alicante, Espaa. Consultado el 28 de Mayo
de 2012, en la URL:
http://www.dccia.ua.es/dccia/inf/asignaturas/LPP/2010-2011/clasesdomingo/sesion5.html
RIVADERA Gustavo, (2008); La programacin funcional: un poderoso
paradigma, consultado el 26 de mayo de 2012, en la URL:
http://www.ucasal.net/templates/unid-academicas/ingenieria/apps/3p63-Rivadera.pdf

11

12

Das könnte Ihnen auch gefallen