Por que no debo usar la instrucción GOTO

viernes, 2 de enero de 2009

Por que no debo usar la instrucción GOTO


GOTO es una sentencia o instrucción muy común en los lenguajes de programación, con el objetivo de controlar el flujo del programa. El efecto de su versión más simple es transferir sin condiciones la ejecución del programa a la etiqueta o número de línea especificada. Es decir, que es una de las operaciones más primitivas para traspasar el control de una parte del programa a otra; tal es así que muchos compiladores traducen algunas sentencias de control como GOTO.

Sin embargo es importante acotar, que no existe ninguna prohibición al uso de instrucciones como GOTO, Exit Sub o alguna otra instrucción que permita saltos en el código. Lo que sucede realmente con estas instrucciones, no es mas, que hacen mucho mas complejo el lograr analizar grandes aplicaciones si poseen internamente saltos de un lado a otro, cosa que no sucede si logramos desarrollar de forma estructurada. Esto no es algo novedoso, ya que Edsger Dijikstra, científico de computación de los años 60, demostró que todo programa puede escribirse con tan sólo 3 estructuras de control sin usar saltos en el código, esta demostración es conocida como "Teorema de Dijkstra".

Desde hace algún tiempo he estado documentándome acerca de ¿Por que no usar GOTO?, y no por que yo los use, de hecho tengo como unos nueve años programando y nunca he usado un GOTO, ya que siempre he escuchado que no se debe usar GOTO, pero incluso muchas de las personas que me decían que no se debía usar, cuando les preguntabas ¿por que?, se quedaban como vacías a la hora de dar argumentos rotundos. En Internet existen infinidades de foros que hablan acerca de este tema, de hecho encontré una imagen que me causo bastante gracia y la muestro a continuación:




Realmente usar GOTO es una mala practica, existen diversos modos de evitar su uso, aunque en algunos casos parezca mas rápido y que podría ahorrar espacio en memoria el hecho de usar GOTO, definitivamente a la hora de hacer mantenimiento en aplicaciones extensas o no desarrolladas por uno mismo, es mucho mas complejo de analizar o extender si dichas aplicaciones poseen internamente el uso de esta instrucción.

Artículos relacionados
>> Teorema del Programa Estructurado
>> Programación estructurada

0 comentarios :

Publicar un comentario