Beruflich Dokumente
Kultur Dokumente
Harmful" LATEX
Rodrigo Sánchez Torres - ICM6
9 de octubre del 2018
1
2 Articulo "Goto Statement Considered Harm-
ful"
En marzo de 1968, el científico de computación holandés Edsger W. Dijkstra (co-
nocido en occidente como Edgar Dijkstra) publicó el influyente artículo "Go To
statement considered harmful"(La instrucción Go To considerada dañina) en el bo-
letín de Comunicaciones de la ACM (Association for Computing Machinery), tam-
bién conocida como CACM. En este artículo señalaba que el uso creciente del salto
incondicional estaba ocasionando que los programas se volvieran ilegibles y muy
propensos a errores y reflexionaba y disertaba como el mantener cierta disciplina
en la programación permitiría hacer no solamente programas legibles y confiables,
sino hacerlos más grandes y propensos a modificarlos en vez de rehacerlos (es decir,
hacerlos más flexibles).
Por un lado, esto dio inicio a la disciplina llamada Programación Estructurada
donde todo el flujo del programa está basado en bloques bien definidos y que no
deben traslaparse ni intereferir entre sí.
Pero esto también ocasionó una gran polémica que, aunque es muy técnica y se
ha ido acallando, sigue siendo escabrosa. Desde el principio muchos programadores
protestaron porque la sentencia GO TO era su principal herramienta de control de
flujo, no había otra cosa; en 1974 el propio Donald Kunth (matemático considerado el
mayor experto en algoritmos computacionales y profesor emérito en Stanford) argüía
que a veces el uso del GO TO mejoraba la eficiencia de ejecución, de forma era mejor
alternativa que el detrimento en legibilidad; en 1978 los diseñadores del lenguaje C,
Brian Kernighan y Dennis Ritchie dijeron que "se podía abusar infinitamente del GO
TO", pero de todas maneras lo incluyeron en las especificaciones de C. El también
científico de la computación, el suizo Niklaus Wirth, jefe del equipo de diseño de
los lenguajes académicos Euler, Algol W, Pascal, Modula, Modula-2 y Oberon (que
por cierto era el editor del CACM cuando se publicó la carta de Dijkstra), diseñó
los lenguajes para impulsar la disciplina del estructuralismo en la programación,
aunque incluyó el GO TO por si acaso.