Los pa­ra­di­g­mas de pro­gra­ma­ción son los pri­n­ci­pios fu­n­da­me­n­ta­les de la pro­gra­ma­ción de software. Lo más fácil es pla­n­teár­se­los como estilos de pro­gra­ma­ción fu­n­da­me­n­ta­l­me­n­te di­fe­re­n­cia­dos que, en co­n­se­cue­n­cia, generan códigos software que están es­tru­c­tu­ra­dos de forma distinta.

El concepto clásico es el de la pro­gra­ma­ción im­pe­ra­ti­va, en la que se define cla­ra­me­n­te en el código fuente qué pasos debe ejecutar un programa y en qué secuencia. Sus subtipos son la pro­gra­ma­ción pro­ce­di­me­n­tal y la orientada a objetos. Según el principio de la pro­gra­ma­ción de­cla­ra­ti­va, solo se describe lo que debe so­lu­cio­nar el software (es decir, solo el resultado y no los pasos in­di­vi­dua­les). Subtipos del paradigma de­cla­ra­ti­vo son la pro­gra­ma­ción funcional y la lógica. ¿Cómo se di­s­ti­n­guen entre sí los citados pa­ra­di­g­mas de software?

Pro­gra­ma­ción im­pe­ra­ti­va: el paradigma de pro­gra­ma­ción clásico

Entre los pa­ra­di­g­mas de pro­gra­ma­ción de software, la pro­gra­ma­ción im­pe­ra­ti­va (del latín imperare, ordenar) se considera el paradigma clásico. Los primeros lenguajes de pro­gra­ma­ción y, por extensión, también los primeros programas in­fo­r­má­ti­cos, se basaban co­m­ple­ta­me­n­te en este enfoque, que prevé una secuencia re­gu­la­ri­za­da de órdenes o in­s­tru­c­cio­nes de­te­r­mi­na­das. Este paradigma de pro­gra­ma­ción es la base, por ejemplo, de los veteranos lenguajes Pascal y C, así como de todos los lenguajes en­sa­m­bla­do­res, entre otros. En la pro­gra­ma­ción im­pe­ra­ti­va, el centro de atención radica, entre otras cosas, en trabajar lo más cerca posible del sistema. Como co­n­se­cue­n­cia, el código de pro­gra­ma­ción re­su­l­ta­n­te es fácil de co­m­pre­n­der y, a la vez, muy abarcable.

La pro­gra­ma­ción es­tru­c­tu­ra­da, la pro­ce­di­me­n­tal y la modular son tres enfoques adi­cio­na­les su­bo­r­di­na­dos al paradigma de pro­gra­ma­ción im­pe­ra­ti­va para escribir y es­tru­c­tu­rar código software.

Consejo

Puedes descubrir más acerca de la pro­gra­ma­ción im­pe­ra­ti­va en nuestro artículo de la Digital Guide.

Pro­gra­ma­ción es­tru­c­tu­ra­da

El enfoque es­tru­c­tu­ra­do de pro­gra­ma­ción co­n­s­ti­tu­ye una forma si­m­pli­fi­ca­da de pro­gra­ma­ción im­pe­ra­ti­va. La principal mo­di­fi­ca­ción del principio básico radica en que, en lugar de in­s­tru­c­cio­nes de salto absolutas (in­s­tru­c­cio­nes que provocan que el pro­ce­sa­mie­n­to no continúe con la siguiente in­s­tru­c­ción, sino en otro lugar) este paradigma de pro­gra­ma­ción de software prevé el uso de bucles y es­tru­c­tu­ras de control. Un ejemplo de ello es el uso de “do...while” para realizar una in­s­tru­c­ción de forma au­to­má­ti­ca siempre que se dé una de­te­r­mi­na­da condición (al menos una vez).

Pro­gra­ma­ción pro­ce­di­me­n­tal

El paradigma de pro­gra­ma­ción pro­ce­di­me­n­tal amplía el enfoque im­pe­ra­ti­vo con la po­si­bi­li­dad de desglosar al­go­ri­t­mos en porciones ma­ne­ja­bles. Estos se denominan como pro­ce­di­mie­n­tos, de­pe­n­die­n­do del lenguaje de pro­gra­ma­ción, o también como su­b­pro­gra­mas, rutinas o funciones. El sentido y el propósito de esta di­s­tri­bu­ción es hacer que el código de programa sea más claro y evitar las re­pe­ti­cio­nes in­ne­ce­sa­rias de código. Mediante la ab­s­tra­c­ción de los al­go­ri­t­mos, el paradigma de software pro­ce­di­me­n­tal re­pre­se­n­ta un paso decisivo desde los lenguajes en­sa­m­bla­do­res simples hasta los lenguajes estándar complejos.

Pro­gra­ma­ción modular

La pro­gra­ma­ción modular también se clasifica como un subtipo del paradigma de pro­gra­ma­ción im­pe­ra­ti­vo. En principio, es muy similar al enfoque pro­ce­di­me­n­tal, o más bien lo adapta a los re­que­ri­mie­n­tos de proyectos de software mayores y más amplios. En este sentido, el código fuente se divide es­pe­cí­fi­ca­me­n­te en bloques parciales lógicos in­de­pe­n­die­n­tes los unos de los otros para pro­po­r­cio­nar más tra­n­s­pa­re­n­cia y facilitar el proceso de debugging (re­so­lu­ción de errores). Los bloques parciales in­di­vi­dua­les, de­no­mi­na­dos módulos, se pueden probar por separado antes de vi­n­cu­lar­los po­s­te­rio­r­me­n­te a una apli­ca­ción conjunta.

Pro­gra­ma­ción de­cla­ra­ti­va: pa­ra­di­g­mas de software del pasado más reciente

De forma paralela a la evolución co­n­ti­nua­da del hardware y el software, con el enfoque de­cla­ra­ti­vo se de­sa­rro­lló un paradigma al­te­r­na­ti­vo para la pro­gra­ma­ción de código. El principio fu­n­da­me­n­tal de la pro­gra­ma­ción de­cla­ra­ti­va radica en la de­s­cri­p­ción del resultado final que se busca. Por lo tanto, en primera línea se encuentra el “qué” del resultado y no el “cómo” de los pasos que llevan a la solución, como es el caso en la pro­gra­ma­ción im­pe­ra­ti­va. Esto provoca que el código de la pro­gra­ma­ción de­cla­ra­ti­va sea más difícil de co­m­pre­n­der debido al alto grado de ab­s­tra­c­ción, aunque resulta muy corto y preciso.

Dentro de los subtipos del paradigma de pro­gra­ma­ción de­cla­ra­ti­va, existen más di­fe­re­n­cias que dentro del estilo im­pe­ra­ti­vo. Asimismo, su de­fi­ni­ción y cla­si­fi­ca­ción no es siempre exacta. Los dos enfoques más im­po­r­ta­n­tes del paradigma de pro­gra­ma­ción de­cla­ra­ti­va son la pro­gra­ma­ción funcional y la lógica.

Consejo

Puedes descubrir más acerca de la pro­gra­ma­ción de­cla­ra­ti­va en el artículo enlazado de nuestra Digital Guide.

Pro­gra­ma­ción funcional

Las funciones existen en cualquier lenguaje de pro­gra­ma­ción estándar. Sin embargo, los enfoques fu­n­cio­na­les del de­sa­rro­llo de software cuentan con funciones de una clase especial:

Un programa de pro­gra­ma­ción funcional consta de llamadas de función co­n­ca­te­na­das en las que cada parte del programa se in­te­r­pre­ta como una función. En este sentido, las funciones dentro de la pro­gra­ma­ción funcional pueden adoptar distintas “es­tru­c­tu­ras”. Por ejemplo, se pueden vincular entre sí como datos o se pueden utilizar en forma de pa­rá­me­tros. Asimismo, se pueden utilizar como re­su­l­ta­dos de función. En co­n­tra­po­si­ción, el paradigma se ocupa de que no haya asi­g­na­cio­nes in­de­pe­n­die­n­tes de valores.

Los subtipos de la pro­gra­ma­ción de­cla­ra­ti­va son muy im­po­r­ta­n­tes para la in­fo­r­má­ti­ca en general y al mismo tiempo cuentan con apli­ca­cio­nes muy ve­r­sá­ti­les. El tra­ta­mie­n­to especial de funciones permite a los pro­gra­ma­do­res que trabajan de forma funcional componer y aplicar nuevas normas de cálculo de gran alcance a partir de funciones.

Consejo

Puedes descubrir más acerca de la pro­gra­ma­ción funcional en el artículo co­rre­s­po­n­die­n­te de nuestra Digital Guide.

Pro­gra­ma­ción lógica

El paradigma de software lógico, de­no­mi­na­do también como pro­gra­ma­ción pre­di­ca­ti­va, se basa en la lógica ma­te­má­ti­ca. En lugar de una sucesión de in­s­tru­c­cio­nes, un software pro­gra­ma­do según este principio contiene un conjunto de pri­n­ci­pios que se pueden entender como una re­co­pi­la­ción de hechos y su­po­si­cio­nes. Todas las so­li­ci­tu­des al programa se procesan de forma que el in­té­r­pre­te recurre a estos pri­n­ci­pios y les aplica reglas definidas pre­via­me­n­te para alcanzar el resultado deseado.

Consejo

Puedes descubrir más acerca del método de la pro­gra­ma­ción lógica en el artículo co­rre­s­po­n­die­n­te que aborda la temática más de­ta­lla­da­me­n­te.

Co­m­pa­ra­ti­va de los pa­ra­di­g­mas de pro­gra­ma­ción

Paradigma de pro­gra­ma­ción im­pe­ra­ti­va Paradigma de pro­gra­ma­ción de­cla­ra­ti­va
“¿Cómo?” “¿Qué?”
Clásico. Nueva corriente.
Un programa según este paradigma consta de in­s­tru­c­cio­nes sucesivas que indican al ordenador aquello que debe computar y hacer y en qué secuencia. Un programa según este paradigma consta de in­s­tru­c­cio­nes que de­te­r­mi­nan cómo debe proceder un programa con una petición. Los cálculos se llevan a cabo mediante la ma­ni­pu­la­ción de valores y el proceso se controla mediante el pro­ce­di­mie­n­to de recursión.
El nombre viene del latín “imperare”, que significa “ordenar”. El nombre viene del latín “declarare”, que significa “denominar”.
Se pre­de­te­r­mi­na la vía de solución deseada. Se pre­de­te­r­mi­na el resultado deseado.
Lenguajes de pro­gra­ma­ción típicos serían C, Pascal, Fortran, ALGOL y los de­no­mi­na­dos lenguajes en­sa­m­bla­do­res. Lenguajes de pro­gra­ma­ción típicos serían Lisp, ML, Haskell, F#, Prolog y Oz.
Ir al menú principal