Saltar al contenido

¿Cuál es la diferencia entre programación funcional, estructurada y procedimental?

Luego de de esta extensa recopilación de información pudimos resolver esta cuestión que tienen algunos los lectores. Te brindamos la solución y nuestro objetivo es serte de gran ayuda.

Solución:

La programación estructurada es un término antiguo que creo que abarcaría funciones, procedimientos y mucho más. Básicamente significa usar estructuras de flujo de control explícitas en lugar de saltar directamente de una instrucción a otra.

Tanto la programación funcional como la procedimental son, en ese sentido, paradigmas estructurados. La programación funcional también es programación declarativa: la estructura dada a su código corresponde a su significado: un programa es una función que cambia el estado del mundo. La programación procedimental es lo que consideraría programación “típica” en cualquier lenguaje C o sus descendientes, incluidos los lenguajes OO como Java y C++. Un programa es una serie de instrucciones que se ejecutan en serie e invocan subprocedimientos en el camino.

O, como se ha descrito célebremente:

La programación funcional es como describir su problema a un matemático. La programación imperativa es como dar instrucciones a un idiota.

    --- arcus, #scheme on Freenode

La programación funcional utiliza funciones como elementos de primera clase. Hacer uso de funciones de orden superior (funciones de tomar y/o devolver); lo que lleva a construcciones poderosas y código bien factorizado. Algunas personas también se enfocan en el aspecto de pureza de FP, lo que significa que las funciones siempre deben devolver el mismo resultado, dada la misma entrada. Estos, creo, son los dos pilares básicos de la PF. También veo que evitar los efectos secundarios es esencialmente abstraerse un poco de las instrucciones de nivel de máquina de carga/almacenamiento.

La programación estructurada se remonta al artículo “Goto Considered Harmful” de Djikstra. Significa utilizar estructuras if/then/else/elif, bucles do/while/until/for, etc. en lugar de recurrir a goto. Básicamente, se está abstrayendo un poco de las instrucciones de nivel de máquina de comparación/rama. La programación estructurada es ortogonal tanto a la programación funcional como a la procedimental.

Creo que la programación procedimental se refiere a la programación con “subrutinas” imperativas (en oposición a “funciones” puras) que generalmente consisten en una serie de “declaraciones” (en oposición a “expresiones”) que dejan efectos secundarios.

Calificaciones y comentarios

Si te gusta la invitación, tienes la opción de dejar una noticia acerca de qué te ha parecido este post.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *