Imperativa vs. Estructurada
Modelos de programación
No vamos a entrar en explicaciones teóricas complejas sobre estos temas, ya que el lector puede encontrar buena documentación en la web o en la bibliografía especializada. Pero ciertas nociones al respecto son necesarias para nuestra práctica. Así que iniciamos aquí una brever sección sobre modelos de programación tratsando sobre dos modelos básicos de programación: la lineal (o imperativa) y la estructurada (o modular).
Estas denominaciones pueden no ser muy precisas para la teoría y la historia de los modelos de programación, pero nos son útiles ya que nos permitirán diferenciar dos estrategias, hoy por hoy las de mayor uso en este blog.
Las tres estructuras 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.
La programación imperativa, que yo voy a asimilar al concepto de linealidad, 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 de la instrucción GoTo.
Mediante 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 un código lo que en principio parece simple, termine por convertirse en complejo, y sobre todo difícil de seguir y actualizar.
Es el modelo de programación que subyace a los lenguajes Basic iniciales. Hoy en día no se emplea debido a las dificultades de gestión y mantenimiento que colleva 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 desarrollado cuando nos iniciemos, por ejemplo, en el conocimiento de los procedimientos de trabajo que vamos a implementar en 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.
No hay comentarios:
Publicar un comentario
Comenta esta entrada