Está en la página 1de 6

INSTITUTO TECNOLGICO SUPERIOR DE PNUCO

Reporte:
Programacin
funcional
Programacin lgica y funcional.
Ing. Gil Santana Esparza

Flores Ros Denisse Itzayana.

Introduccin.
Las races de la programacin funcional se buscan en el clculo lambda, obra del
matemtico estadounidense Alonzo Church. Por consiguiente se puede entender
que el objetivo de Church en los aos de 1930 no era disear un lenguaje de
programacin, porque para esas fechas no existan las computadoras, sino ms
bien caracterizar qu deba entenderse por funcin efectivamente computable. Es
aqu donde el formalismo de Church y las mquinas de Turing eran en ese sentido
equivalentes: toda funcin computable expresable en el -clculo poda
expresarse igualmente mediante una mquina de Turing y viceversa.
Nuestras computadoras actuales y todos los lenguajes de programacin
existentes, no tienen ms potencia que esos formalismos en cuanto a los
algoritmos que pueden expresar, por lo que podemos considerar al -clculo como
un verdadero lenguaje de programacin precursor del paradigma de programacin
funcional.

Programacin funcional.
La programacin funcional se caracteriza por el uso de expresiones y
funciones. Un programa es una funcin generalmente definida

como una

composicin de funciones ms simples. En los lenguajes funcionales modernos,


las funciones se definen por medio de ecuaciones.
Los lenguajes funcionales puros excluyen el uso de variables, comandos y efectos
colaterales, dado que solo permite que los programas se escriban completamente
en un lenguaje de expresiones, funciones y declaraciones. Esto asegura que cada
funcin depende slo de argumentos y carece de consecuencias no deseadas
(efectos colaterales) sobre otras partes del programa.
Un aspecto distintivo de la programacin funcional pura, que comparte con otras
formas de programacin declarativas, es la ausencia de un manejo de memoria en
forma explcita. El paradigma funcional permite razonar sobre los programas
funcionales, pudiendo referir propiedades generales de la funcin, utilizando
principios de induccin matemtica y razonamiento algebraico. sta caracterstica
le aplicabilidad al paradigma en el campo de la transformacin del programa y
demostraciones formales.
Desde el punto de vista del desarrollo de software, la programacin funcional
ofrece muchos beneficios a los programadores: prototipacin rpida, enfoque
modular, tiempos de desarrollo cortos, cdigo pequeo y fcil de modificar y
reusar. (Ferreira, Luna, Medel, 1992)
Programacin funcional: en el que todas las sentencias son funciones en el
sentido matemtico del trmino. Un programa es una funcin que se define por
composicin de funciones ms simples. (Rodrguez, 2003)
La ejecucin de un programa funcional

puede verse como un ejemplo de

simplificacin de expresiones, que termina cuando se alcanza una que no se


pueda simplificar ms, la cual se considera el resultado del programa.

Cualesquiera referencias a una memoria, aun estado, o a variables cuyo valor


cambia a lo largo del cmputo, quedan fuera del paradigma. (Pea, 2008)
El primer impulsor real paradigma funcional fue el britnico Peter Landn. Landn
Pretenda inventar un modo de organizar la evaluacin de tales expresiones sin
tener que descender a detalles de programacin tales como los diagramas de flujo
de control, el uso de variables intermedias, asignaciones y dems aditamientos de
los lenguajes de programacin habituales. Lo que Landn intent fue distinguir
primeramente entre la sintaxis empleada por el usuario para escribir expresiones,
la cual deba ser lo ms legible posible y lo que l llam la estructura interna.
Tambin dise la primera mquina abstracta de la historia para la evaluacin de
-expresiones. Su mquina conocida como SECD debido al nombre de los cuatro
componentes de su estado interno.
(Stack, Enviroment, Control, Dump)
Ha inspirado la definicin de todas las mquinas abstractas posteriores. En su
trabajo de 1964 (Landn, 1964) avanz en la forma de implementar dicha mquina.
La programacin funcional pas a ser inutilizada por un tiempo de diez aos,
debido a que quizs sus lenguajes eran meros objetos de laboratorio que no
podan competir con eficiencia con los lenguajes imperativos. Fue John Backus en
1977 en una de sus conferencias con ocasin en la recepcin del premio Turing
(Backus, 1978), ah arremeti con tremenda contundencia contra el paradigma
imperativo, al que describi como un cors que impeda a los programadores
pensar con libertad con sus algoritmos.

Conclusin:
Independientemente de su implantacin en la programacin de cada da, el
paradigma funcional ha hecho al menos tres aportaciones a la historia de los
lenguajes, que han tenido ya un profundo impacto en la evolucin presente de
dicha historia: los sistemas polimrficos de tipos, de orden superior y la evaluacin
perezosa.
Los sistemas polimrficos comenzaron siendo un factor de seguridad de los
lenguajes. El tipo de una expresin, determinado normalmente en tiempo de
compilacin, nos informa y nos da garantas acerca del conjunto de valores que la
expresin va a tomar en tiempo de ejecucin.
El orden superior permite separar de modo eficaz dos aspectos importantes:

El patrn comn, el cual se codifica mediante una funcin de orden


superior, parametrizada por tantas constantes o/y funciones como sean

necesarias.
La parte especifica que son precisamente las constantes y funciones
particulares de cada problema.

La evaluacin perezosa es, segn Hugues, otra cola de pegar (1990) que
permite ensamblar piezas juntas de un programa funcional que de otro modo
seran disjuntas. Igual que orden superior abstrae aspectos comunes y convierte
los aspectos

especficos en parmetros, proporcionando as, un modo de

ensamblar entre s piezas independientes, la evaluacin perezosa permite el


aspecto de la generacin de los datos del aspecto de su consumo, permitiendo
que una funcin distinta se ocupe de cada uno de ellos.

Bibliografa:
Ferreira Szpiniak Arial, D. Luna Carlos, H. Medel Ricardo (1992), Manual-Gua de
aprendizaje. Programacin avanzada. Editorial de la fundacin universidad
nacional de Rio Cuarto.
Rodrguez Sala Jess J. (2003) INTRODUCCIN A LA PROGRAMACIN:
TEORA Y PRCTICA, Editorial Club Universitario.
Pea Mar Ricardo, (2008) De Euclides a Java. Historia de los algoritmos y de los
lenguajes de programacin. Editorial AGT.
Landn P.J. (1964), The mechanical evaluation of expressions. Ed. Computer
Journal.
Backus, J. (1978), Can Programming be Liberated from the Von Neumman Style?
A Functional Style and its Algebra of Programs. Comm. ACM (21) 8, pp. 613-641agosto- 1978
Artculo: John Hugues, Why Functional Programming Matters, en Research Topics
in Functional Programming, D. A. Turner (ed.) Addison-Wesley, 1990.