Programación
funcional
|
Características
En ciencias de la
computación, la programación funcional es un paradigma de
programación declarativa basado en la utilización de funciones aritméticas que no maneja datos mutables
o de estado. La programación funcional
tiene sus raíces en el cálculo lambda,
un sistema formal desarrollado en los 1930s para investigar la definición de
función, la aplicación de las funciones y la recursión. Muchos lenguajes de
programación funcionales pueden ser vistos como elaboraciones del cálculo
lambda. Los programas escritos en un lenguaje funcional están constituidos
únicamente por definiciones de funciones, entendiendo éstas no como
subprogramas clásicos de un lenguaje imperativo, sino como funciones
puramente matemáticas, en las que se verifican ciertas propiedades como la transparencia
referencial (el significado de una
expresión depende únicamente del significado de sus subexpresiones), y por
tanto, la carencia total de efectos colaterales. Otras
características propias de estos lenguajes son la no existencia de
asignaciones de variables y la falta de construcciones estructuradas como la
secuencia o la iteración (lo que obliga en la práctica a que todas las
repeticiones de instrucciones se lleven a cabo por medio de funciones recursivas).
Lenguajes funcionales
Entre los lenguajes funcionales
puros, cabe destacar a Haskell y Miranda. Los lenguajes
funcionales híbridos más conocidos son Scala,
Lisp, Scheme, Ocaml, SAP y Standard ML (estos dos últimos,
descendientes del lenguaje ML). Erlang es otro lenguaje funcional
de programación
concurrente. Mathematica permite la programación
en múltiples estilos, pero promueve la programación funcional. R también es un lenguaje funcional
dedicado a la estadística. Recientemente Microsoft Research está trabajando
en el lenguaje F# (Functional#).Entre
otros lenguajes que se podrían utilizar para programación funcional se
podrían incluir a Perl, pues, aunque es un lenguaje de
propósito muy general, se pueden realizar programas usando exclusivamente
funciones definidas por el usuario; así como Python, como lenguaje que incorpora el
paradigma funcional; o Ruby
|
Programación imperativa
|
|
Características
La programación imperativa, en
contraposición a la programación
declarativa es un paradigma de programación que describe la programación en términos del estado del programa y
sentencias que cambian dicho estado. Los programas imperativos son un
conjunto de instrucciones que le indican al computador cómo realizar una tarea. La implementación de hardware de la mayoría de computadores es imperativa; prácticamente todo el
hardware de los computadores está diseñado para ejecutar código de máquina, que
es nativo al computador, escrito en una forma imperativa. Esto se debe a que
el hardware de los computadores implementa el paradigma de las Máquinas de Turing.
Desde esta perspectiva de bajo nivel, el estilo del programa está definido
por los contenidos de la memoria, y las sentencias son instrucciones en el
lenguaje de máquina nativo del computador (por ejemplo el lenguaje ensamblador).Los
lenguajes imperativos de alto nivel usan variables y sentencias más complejas, pero aún siguen el mismo paradigma. Las
recetas y las listas de revisión de procesos, a pesar de no ser programas de
computadora, son también conceptos familiares similares en estilo a la
programación imperativa; cada paso es una instrucción, y el mundo físico
guarda el estado (Zoom). Fortran, cuyo desarrollo fue iniciado en 1954 por John Backus en IBM, fue el primer gran lenguaje de
programación en superar los obstáculos presentados por el código de máquina
en la creación de programas complejos.
Algunos
lenguajes imperativos
|
|



No hay comentarios:
Publicar un comentario