¿Cómo fueron insuficientes las estructuras de control originales de Fortran?

8

En mi clase de Conceptos del lenguaje de programación, se mencionó de pasada que las estructuras de control originales de Fortran eran insuficientes. Se aludió que eran demasiado similares a las instrucciones de la máquina para el IBM 704. ¿Era este el caso? ¿Qué los hizo exactamente insuficientes?

Ingeniero mundial
fuente
El IF aritmético de FORTRAN fue esencialmente una optimización de la operación de omisión del IBM 704.
Yannis

Respuestas:

10

Bueno, veamos las primeras versiones de Fortran tenía IF GOTOy DO.

Hubo varias variaciones en IF y GOTO, incluyendo GOTO ASIGNADO y GOTO calculado, que era algo así como una declaración CASE.

Entonces, aparte de los bucles de OD, todas las declaraciones de control eran variaciones de IF y GOTO que involucraban números de declaraciones codificados. El resultado fue más fideos que espagueti.

El bucle DO en sí era problemático porque estrictamente era "hacer hasta" con la prueba en la parte inferior del bucle, por lo que no había manera de saltear la primera iteración que no sea la anterior con otro "IF (cond) GOTO 9999". .

Por lo tanto, como la mayoría de las estructuras de control eran "número de lino GOTO", cualquier cambio sustancial al código implicaría muchos cambios propensos a errores en los números de línea objetivo.

El bucle DO necesitaba complementarse con un GOTO para convertirlo en un DO WHILE.

Los primeros Fotrans tenían un "GOTO" de la forma.

IF (VAR) 100,200,300

Lo que significa que si VAR es <0, vaya a la declaración 100. If = 0, luego la declaración 200, si> 0, entonces la declaración 300.

En general, no fue un mal intento. El hecho de que pudieras escribir fórmulas que se parecieran a lo que tu profesor escribió en la pizarra fue la característica más importante de FORTRAN, el flujo del programa tuvo que esperar unos años para ponerse al día.

James Anderson
fuente
-1

Lo malo de FORTRAN IV fue que todas las "estructuras" de control (incluidos los bucles) dependían de las etiquetas. Por lo tanto, proporcionaron control no estructurado. Eran demasiado poderosos. ¿Qué tal, por ejemplo, bifurcarse en una etiqueta dentro de un bucle y luego, bifurcarse nuevamente ...

Richard John Botting
fuente