[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