[C con Clase] GOTO

Ricardo Cuevas Camarena rcuevas en dim.com.mx
Mie Nov 12 17:29:13 CET 2008


Yolmer Rosales escribió:
> http://es.wikipedia.org/wiki/Teorema_del_programa_estructurado
> El *teorema del programa estructurado* es un resultado en la teoría de 
> lenguajes de programación 
> <http://es.wikipedia.org/wiki/Teor%C3%ADa_de_lenguajes_de_programaci%C3%B3n>. 
> Establece que toda función computable 
> <http://es.wikipedia.org/wiki/Funci%C3%B3n_computable> puede ser 
> implementada en un lenguaje de programación que combine subrutinas en 
> únicamente tres formas. Esas tres formas (también llamadas estructuras 
> de control <http://es.wikipedia.org/wiki/Estructuras_de_control>) son:
>
>    1. Ejecutar una subrutina y luego otra subrutina (secuencia)
>    2. Ejecutar una de dos subrutinas, dependiendo del valor de una
>       variable booleana (selección o IF-THEN-ELSE)
>    3. Ejecutar una subrutina mientras una variable booleana sea
>       'verdadera' (iteración, ciclo o bucle)
>
> Este teorema demuestra que la instrucción GOTO no es estrictamente 
> necesaria y para todo programa existe un programa equivalente que no 
> hace uso de dicha instrucción.
>
> Los científicos de la computación usualmente acreditan el teorema a un 
> artículo de 1966 escrito por Corrado Böhm 
> <http://es.wikipedia.org/w/index.php?title=Corrado_B%C3%B6hm&action=edit&redlink=1> 
> y Giuseppe Jacopini 
> <http://es.wikipedia.org/w/index.php?title=Giuseppe_Jacopini&action=edit&redlink=1>. 
> Sin embargo, David Harel 
> <http://es.wikipedia.org/w/index.php?title=David_Harel&action=edit&redlink=1> 
> rastreó sus orígenes hasta la descripción de 1946 de la arquitectura 
> de Von Neumann 
> <http://es.wikipedia.org/wiki/Arquitectura_Eckert-Mauchly> y el 
> teorema de la forma normal de Kleene 
> <http://es.wikipedia.org/wiki/Stephen_Kleene>.
>  
> ¿Por qué lo incluyen en el 
> lenguajje?????????????????????????????????????????
por que primero fue el lenguaje y despues las teorias de la 
programacion. asi de sencillo.

He trabajado con diferentes teorias/estilos/tecnicas, y cada uno tiene 
lo suyo.

el famoso codigo spagheti (tan util el goto en el)
programacion estructurada
maquina de turin o maquina de estados
programacion orientada a objetos

en muchos casos el lenguaje antecede a la teoria, y otra veces de 
teorias han nacido lenguajes (o extensiones de lenguaje)

he hecho programacion orientada a objetos en lenguajes que no tienen un 
extension para ello. y he visto codigo espagueti en lenguajes que se 
supone lo eliminan.

A final de cuentas se resume a lo que hace el programador.

Actualmente trabajo con un lenguaje que no tiene goto, y no he visto 
ningun programa que lo requiera.

Y perdone por el ejemplo clasico que mencionan para justificarlo. ese 
del mas de 5 ciclos anidados. Si tu anidas mas de 5 ciclos, lamento 
decirte que tienes una pesima organizacion de tu codigo. y aun si fuera 
inevitable usar tanto ciclo anidado, no se requiere el goto

procedimiento operacion
    ciclo 1
       ciclo 2
          ciclo 3
             ciclo 4
                ciclo 5
                   condicion para salirme, uso la salida del 
procedimiento (return)
                fin ciclo 5
             fin ciclo 4
           fin ciclo 3
         fin ciclo 2
       fin ciclo 1
fin procedimiento

llamada al procedimiento. (operacion)

> ------------------------------------------------------------------------
>
> _______________________________________________
> Lista de correo Cconclase Cconclase en listas.conclase.net
> http://listas.conclase.net/mailman/listinfo/cconclase_listas.conclase.net
> Bajas: http://listas.conclase.net/index.php?gid=2&mnu=FAQ





Más información sobre la lista de distribución Cconclase