jueves, 14 de marzo de 2024

Modelos de programación

Programación imperativa vs. programación estructurada.

Aunque sin entrar en explicaciones teóricas complejas, sobre las que el lector puede encontrar buenos textos en la web o consultar la bibliografía especializada, me interesa para el desarrollo de nuestros conocimientos de programación, iniciar esta sección sobre los modelos de programación, hablando, aunque sea brevemente, de dos modelos básicos de programación: la lineal (o imperativa) y la estructurada (también modular). Estas denominaciones pueden no ser estrictas desde la perspectiva de la teoría y la historia de los modelos de programación, pero es útil a mi objetivo, ya que permitirá diferenciar dos estrategias básicas (las dos de mayor uso en este blog).



Las
tres estrategias básicas de la programación son la linealidad o sucesión lineal, la bifurcación y la iteración. Con ellas se construyen los algoritmos que son, en lo fundamental, combinaciones más o menos complejas y más o menos extensa de estas tres estrategias, si bien, según el modelo de programación, primarán unas u otras. Por ejemplo, en la programación imperativa es fundamental el uso de la estrategia lineal.

En efecto, la programación imperativa, que yo voy a asimilar al concepto de linealidad (de ahí lo de programación lineal), es el modelo de programación más antiguo, según el cual un programa es una secuencia de instrucciones sucesivas. Integra también el uso de ciclos o bucles y condicionales, pero se caracteriza por el uso (a veces profusamente) de la instrucción GoTo.

Mediante GoTo (también GOTO) se redirige el programa a una posición determinada de la secuencia de instrucciones, en función de determinadas condiciones. Este modo de proceder es fuente de que lo que en principio se enuncia como simple, termine por convertirse en complejo, y sobre todo dificulta el seguimiento del programa.

Es el modelo de programación que subyace a los lenguajes Basic iniciales y hoy en día no se practica como tal modelo, debido a las dificultades de gestión y mantenimiento que genera el uso de GoTo y por requerir largas secuencias de instrucciones.

Como alternativa, surgió el modelo de programación estructurada (década de 1960), una de cuyas evoluciones a posteriori fue el modelo de programación modular.

Al contrario de la programación imperativa, en la programación estructurada no se hace uso de la sentencia GoTo, optando por el uso de subrutinas ejecutadas (eso sí) secuencialmente, y privilegiando el uso de las estructuras de control (condicionales, ciclos e iteraciones o ciclos con condición inicial)

Una evolución (según algunos autores) de la programación estructurada es la programación modular que se caracteriza por subdividir un programa en módulos o subprogramas a los que se recurre en función del desarrollo del algoritmo, lo que la diferencia de la programación estructurada, que mantiene el principio de linealidad en es uso de las subrutinas. Una ventaja añadida del modelo modular es la posibilidad de reutilizar código (módulos) en función de necesidades, lo que reduce la extensión del programa final.

Después de esta breve introducción, me interesa justificar su utilidad de cara a que entendamos el proceso de diferenciación que paulatinamente vamos a ver desarrollada cuando nos iniciemos, por ejemplo, en el conocimiento de los procedimientos de trabajo que vamos a desarrollar sobre OOo Basic.

También será de interés a la hora de analizar cómo trabajar de forma más funcional con el código que genera Grabar macro y nuestra conversión del mismo en subrutinas o en funciones diferenciadas.

Lo que no voy a hacer, en este caso, es ejemplificar en PSeInt estos dos (a grandes rasgos) modelos de programación: lineal vs. estructurada-modular (que es la diferenciación que realmente nos interesa) porque nos aporta poco desde esta perspectiva y porque lo tendremos que trabajar con cierta profundidad en los contextos que antes señalé.

No hay comentarios:

Publicar un comentario

Comenta esta entrada