1.1.Teorema de la programación estructurada

La definición de programa se basa en el cumplimiento de las siguientes condiciones:

  1. Existe una entrada y una salida.
  2. Existen líneas o caminos desde la entrada hasta la salida que llevan al siguiente bloque del programa. Es decir, no existen bloques infinitos ni instrucciones que no se ejecutan.
El teorema del programa estructurado completa esta definición acotando las estructuras lógicas de control que pueden usarse.
Icono IDevice Actividad
El teorema del programa estructurado dice que toda función computable puede ser implementada en un lenguaje de programación que combine tres subrutinas de control: secuencia, selección e iteración.

El teorema dice que las instrucciones de carácter incondicional no son necesarias. Por tanto, siempre habrá un modo de sustituir los GOTO, EXIT y RETURN por otras estructuras de control.

 

Estas tres instrucciones, denominadas de transferencia incondicional, derivan el flujo vertical de programa, que debe poder seguirse de arriba a abajo.

 

La filosofía de la programación estructurada es que un programa se divide en bloques con una entrada y una salida que se ejecutan secuencialmente uno detrás de otro.

bloques

Img 4. Bloques

Imagen de kinuma.com

Icono IDevice Objetivos

Este teorema no es tan actual como podría parecer.

 

Si la evolución de las TIC ha sufrido su gran revolución en los 80 y los 90 en cuanto a hardware, aplicaciones y telecomunicaciones, la evolución en cuanto a programación es mucho anterior.

 

El nacimiento de la informática se establece con la aparición de máquinas capaces de interpretar y ejecutar secuencias de instrucciones, es decir, programas informáticos.

 

El teorema fue enunciado en 1960 por Böhm y Jacopini, aunque sus antecedentes se encuentran mucho antes, en la arquitectura de Von Neumann y los estudios del matemático Kleene de 1946.

 

En los primeros albores de la informática programar de forma eficaz era una necesidad, más que un mero avance.

 

Puedes encontrar más información en: wikipedia_teorema_programa_estructurado.


Icono de IDevice de pregunta AV - Pregunta de Elección Múltiple
a) El teorema es válido para todos los tipos de programas.
  
Verdadero
Falso

b) ¿Cuál de estas características es propia de un programa estructurado?
  
Se puede leer por bloques.
Se puede leer de principio a fin de forma continua.

Icono IDevice Pre-conocimiento
ELIMINACIÓN DE LA SENTENCIA GOTO
 
La programación no estructurada se basa en la ejecución de bloques de sentencias o procedimientos de la misma forma que la programación estructurada. La diferencia estriba en que un programa estructurado puede leerse de principio a fin secuencialmente, mientras que un programa no estructurado permite derivar el flujo a otros bloques saltando la secuencia lógica del programa.
 
El uso de las estructuras básicas de control hace que la eliminación de la sentencia GOTO no sea complicado, facilitando así la lectura del programa. Sin embargo existen casos en que su utilización podría estar justificada (por ejemplo, ejecución de un programa en varios idiomas).
 
El rechazo al uso de esta instrucción fue plasmado por el físico holandés Dijkstra en 1968 en su artículo "Instrucción Go To considerada dañina" ("Go To Statement Considered Harmful"). Puedes consultar el contenido de este artículo en wikipedia: GOTO
Dijkstra

Img 5. Dijkstra

Imagen de Grafos con licencia CC