[C con Clase] GOTO
Héctor Francisco Hernández
hectorfh en gmail.com
Mie Nov 12 18:08:24 CET 2008
Hola a Todos:
La respuesta de por qué es conveniente usar "goto" quedo claro en la
respuesta de Steven, por lo tanto no hace falta agregar nada supongo, y yo
no debería estar respondiendo. Pero como veo que la discusión sigue y los
tres últimos mensajes fueron del bando contrario, no puedo resistir la
tentación de entrar en el "flame".
Algunas respuestas de la lista a favor de no usar esta sentencia me
parecieron por lo menos ineficaces:
> toda función computable puede ser implementada en un lenguaje de
programación que combine subrutinas en únicamente tres formas
> ...
> ¿Por qué lo incluyen en el
lenguajje?????????????????????????????????????????
No me queda claro si este argumento es a favor o en contra del "goto". El
hecho de que un lenguaje sea "Turing Completo" no significa que sea
expresivo o bueno para escribir programas de computación.
Para más prueba podés averiguar sobre el lenguaje BrainFuck (
http://es.wikipedia.org/wiki/Brainfuck).
Hay sólo ocho instrucciones, y todas son de un carácter.
Carácter Significado
> Incrementa el puntero.
< Decrementa el puntero.
+ Incrementa el byte apuntado.
- Decrementa el byte apuntado.
. Introduce el byte apuntado en la corriente de salida.
, Toma como valor del byte actualmente apuntado el provisto por la corriente
de entrada.
[ Avanza a la instrucción inmediatamente posterior al ] correspondiente si
el byte actualmente apuntado es nulo.
] Retrocede a la instrucción inmediatamente posterior al [ correspondiente
si el byte actualmente apuntado no es nulo.
Un "Hello, world" en Brainfuck:
Este sería el típico programa que escribe "Hello, world"
++++++++++
[ Bucle para iniciar el vector
>+++++++>++++++++++>+++>+<<<<-
]
>++. imprime 'H'
>+. imprime 'e'
+++++++. 'l'
. 'l'
+++. 'o'
>++. espacio
<<+++++++++++++++. 'W'
>. 'o'
+++. 'r'
------. 'l'
--------. 'd'
>+. '!'
>. nuevalínea
BrainFuck es un lenguaje "Turing Completo", con un poder igual a Java, por
ejemplo. BrainFuck tampoco tiene "goto". Espero haber respondido la pregunta
con eso.
> He programado durante casi 25 años de manera profesional y deje de usar el
goto hace muchos años :)
> en 11 lenguajes de programacion diferentes (obviamente incluye c/c++) y 9
plataformas.
Este argumento no dice mucho. Tengo un amigo que programo 30 sin usar
algunas estructuras de control básicas (while, for, switch)... porque usaba
sólo "goto".
Saludos
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.conclase.net/pipermail/cconclase_listas.conclase.net/attachments/20081112/4a884870/attachment.html>
Más información sobre la lista de distribución Cconclase