Sesión Investigativa IV
Sesión Investigativa IV
Sesión Investigativa IV
Paradigma en Programación
Se denominan paradigmas de programación a las formas de clasificar los lenguajes de
programación en función de sus características. Los idiomas se pueden clasificar en
múltiples paradigmas.
Un paradigma de programación, por tanto, es un método para resolver un problema o
realizar una tarea. Si bien existen diferentes lenguajes de programación se necesita de
una estrategia cuando se implementa, es decir, un camino, y ese puede ser los
paradigmas. Los paradigmas más populares son:
La programación estructurada
La programación orientada a objetos
La programación funcional
Programación Imperativa
Entre los paradigmas de programación de software, la programación imperativa (del
latín imperare, ordenar) se considera el paradigma clásico. Los primeros lenguajes de
programación y, por extensión, también los primeros programas informáticos, se
basaban completamente en este enfoque, que prevé una secuencia regularizada de
órdenes o instrucciones determinadas. Este paradigma de programación es la base, por
ejemplo, de los veteranos lenguajes Pascal y C, así como de todos los lenguajes
ensambladores, entre otros. En la programación imperativa, el centro de atención radica,
entre otras cosas, en trabajar lo más cerca posible del sistema. Como consecuencia, el
código de programación resultante es fácil de comprender y, a la vez, muy abarcable.
Programación Estructurada
La programación estructurada es un paradigma de programación orientado a mejorar la
claridad, calidad y tiempo de desarrollo de un programa utilizando únicamente
subrutinas o funciones y tres estructuras: secuencial, condicional y repetitiva.
Estructura secuencial: Está formada por una secuencia de llamadas a
instrucciones del lenguaje o funciones del programador.
Estructura condicional: Es aquella que ejecuta una estructura si se cumple una
condición booleana.
Estructura iterativa con condición: Es aquella que ejecuta una estructura una y
otra vez si se cumple una condición booleana.
En la programación estructurada los 3 tipos de estructuras mencionadas no aparecen de
forma aislada, sino que unas aparecen "en el interior" (o anidada) de cualquiera de ellas.
Por ejemplo, lo normal es que una estructura secuencia aparezca "anidada" en una
condicional o una iterativa, o es muy usual que una iterativa aparezca "anidada" en otra
iterativa.
Programación procedimental
El paradigma de programación procedimental amplía el enfoque imperativo con la
posibilidad de desglosar algoritmos en porciones manejables. Estos se denominan como
procedimientos, dependiendo del lenguaje de programación, o también como
subprogramas, rutinas o funciones. El sentido y el propósito de esta distribución es
hacer que el código de programa sea más claro y evitar las repeticiones innecesarias de
código. Mediante la abstracción de los algoritmos, el paradigma de software
procedimental representa un paso decisivo desde los lenguajes ensambladores simples
hasta los lenguajes estándar complejos.
Esta técnica de programación ofrece muy buena respuesta con relación al tamaño de los
programas, y en bruto casi no se nota en la velocidad de ejecución de los mismos
(mientras que las variables, constantes o índices de vector estén en memoria, como
suele ser normal, estos se relacionarán entre sí, sin una carga de memoria
considerablemente alta para los procesadores modernos); aunque es muy complicado
conseguir una programación por procedimientos pura.
Programación Declarativa
es un paradigma de programación que está basado en el desarrollo de programas
especificando o "declarando" un conjunto de condiciones, proposiciones, afirmaciones,
restricciones, ecuaciones o transformaciones que describen el problema y detallan su
solución. La solución es obtenida mediante mecanismos internos de control, sin
especificar exactamente cómo encontrarla (tan solo se le indica a la computadora qué es
lo que se desea obtener o qué es lo que se está buscando). No existen asignaciones
destructivas, y las variables son utilizadas con transparencia referencial.
El principio fundamental de la programación declarativa radica en la descripció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
programación imperativa. Esto provoca que el código de la programación declarativa
sea más difícil de comprender debido al alto grado de abstracción, aunque resulta muy
corto y preciso.
Programación lógica
Establece cómo se resuelve un problema mediante sentencias. Sin embargo, la
programación lógica no gira en torno al cómo, sino al qué: se trabaja de forma
descriptiva, estableciendo relaciones entre entidades, lo que obliga a los que los
lenguaje tengan un alto nivel de abstracción.
El paradigma de software lógico, denominado también como programación predicativa,
se basa en la lógica matemática. En lugar de una sucesión de instrucciones, un software
programado según este principio contiene un conjunto de principios que se pueden
entender como una recopilación de hechos y suposiciones. Todas las solicitudes al
programa se procesan de forma que el intérprete recurre a estos principios y les aplica
reglas definidas previamente para alcanzar el resultado deseado.
Este paradigma se basa en la fórmula "algoritmos = lógica + control" (la llamada
Ecuación Informal de Kowalski), lo que significa que un algoritmo se crea
especificando conocimiento mediante axiomas (lógica) y el problema se resuelve
mediante un mecanismo de inferencia que actúa sobre el mismo (control).
Programación funcional
La programación funcional consta de llamadas de función concatenadas en las que cada
parte del programa se interpreta como una función. En este sentido, las funciones dentro
de la programación funcional pueden adoptar distintas “estructuras”. Por ejemplo, se
pueden vincular entre sí como datos o se pueden utilizar en forma de parámetros.
Asimismo, se pueden utilizar como resultados de función. En contraposición, el
paradigma se ocupa de que no haya asignaciones independientes de valores.
Como se puede ver, el código imperativo es detallado y no está claro de inmediato. Por
otro lado, el enfoque declarativo es legible y explícito, porque se centra en lo que se
quiere obtener.