[c&p] ¿Un programa escrito en Haskell, que al ejecutarse imprime un programa en Perl, que al ejecutarse imprime un programa en Python, que al ejecutarse imprime un programa en Ruby, que al ejecutarse imprime un programa en C, que al ejecutarse imprime un programa en Java, que al ejecutarse imprime el programa original? Sí, es como para que te duela la cabeza, aunque el código, que podéis ver después del salto, es de lo más sencillo. Este tipo de programas que se imprimen a sí mismos como salida se conocen con el nombre de quines
Comentarios
Para entender la recursividad primero hay que entender la recursividad
#5 Tu madre es tan gorda que el programa recursivo que calcula su peso provoca un desbordamiento de pila.
#5 en realidad la mejor explicacion de la recursividad es la que aparece en #42
InC++ption
Una empresa que te subcontrata para programar en Haskell a otra empresa que te subcontrata para programar en Perl a otra empresa que te subcontrata para programar en Python, a otra empresa que te subcontrata para programar en Rubya otra empresa que te subcontrata para programar en C a otra empresa que te subcontrata para programar en Java que es lo que quería al final el cliente original? Sí, es como para que te duela la cabeza, aunque la idea es de lo más sencilla. Este tipo de empresas que subcontratan indefinidamente se conocen con el nombre de cárnicas (ETTs de informática)
Demasiao friki: haskell->perl->python->ruby->C->java->haskell
Falta un punto y coma
Siguiendo enlaces:
http://asiajin.com/blog/2009/09/22/uroboros-programming-with-11-programming-languages/
The Ruby code generates Python code, which generates Perl code, which generates Lua code, which generates OCaml code, which generates Haskell code, which generates C code, which generates Java code, which generates Brainfuck code, which generates Whitespace code, which generates Unlambda code, which generates the original Ruby code again.
#8 Es que eso ya está hecho a mala leche, con el Brainfuck y el Whitespace
Seguro que el antivirus detecta que es un troyano.
Comentario en la web:
¡Que cansado! ¿No se puede redirigir a un fichero en vez de a la impresora?
Épico
Me están entrando unas ganas de comprarme una impresora..
joer que rallada!
Interesante, no podré comer de la emoción.
¡Vaya mierda, no usa Fortran!
¿Éste tipo de programas tiene alguna aplicación práctica?
#12 Cuantiosas.
#12 Salir en Meneame y parecer más raro de lo que ya de por sí eres.
#12 Entre otras la ofuscación del código
#12
Php se utiliza mucho de esta forma, php se ejecuta en el lado del servidor, y da como resultado una pagina html (y muchas veces con javascript o similares) para que se ejecute en el lado del cliente. Este es el ejemplo mas claro (y supongo que el mismo al que hace referencia #19).
Por otro lado, esta tal como explica #17 la ofuscación, que viene a ser que resulte difícil de leer y comprender un programa por parte de un humano.
Y mi aporte: Código mutante. Se usa tanto como para hacer un programa que simplemente vaya cambiando, para que los antivirus lo tengan mas difícil de identificarlos, como para variar su comportamiento e irse modificando y perfeccionando el solito. Muchas veces cuando un programa "aprende" es de esta manera (juegos de ajedrez, etc).
http://es.wikipedia.org/wiki/C%C3%B3digo_mutante
La verdad, es que siento que mi aporte es un poco pobre, va mas a darle nombre a esta característica que en realidad a dar ejemplos de usos, pero creo que puede ser igualmente una información útil para quien quiera averiguar mas.
Por otro lado, si alguien sabe mas ejemplos a parte de lo que se ha dicho hasta aquí que no se lo calle :3 yo también quiero saber.
#26 Yo utilizo mucho PHP para generar C++, es bastante cómodo para esos menesteres
#c-12" class="content-link" style="color: rgb(227, 86, 20)" data-toggle="popover" data-popover-type="comment" data-popover-url="/tooltip/comment/1200999/order/12">#12 por ponerte un ejemplo, ayer mismo estuvimos programando una aplicacion en c# que al ejecutarse imprimia un codigo HTML, (que a su vez podria imprimir otras cosas, si se quisiera).
#12 si, la salida podría servir para imprimirlo en PASCAL y que al ser ejecutado a su vez lo imprimiese en COBOL
Por algo llevo este nick... por cierto quien no conozca esta pagina y le haya interesado el articulo aqui tiene cosas muy curiosas (-;
http://www.nyx.net/~gthompso/quine.htm
A mi en concreto me gustan los polyglots (-:
¿Incluye el cartucho de tinta?
#10 No sé si es una coña o no, pero por si acaso: imprime en la salida estándar, no es que imprima por la impresora...
#11 Na, tranqui, es una trolleada.
Que recuerdos de la universidad... aprendíamos con Haskell y Ada95
En C++:
for(int i=0; i>0; i++)
cout
#34 Pues ¿Has visto bien el for? Por que pa mi que no se ejecutaria ni una vez.xD
#37 Cierto, me acabo de dar cuenta que si empieza siendo menor o igual que 0 ni empieza, son cosas del novato
Una aplicación un poco menos inocente:
http://en.wikipedia.org/wiki/Ken_Thompson#Turing_Award
http://cm.bell-labs.com/who/ken/trust.html
http://www.c2.com/cgi/wiki?TheKenThompsonHack
Si os gusta el mundillo del malware y la seguridad, merece la pena leerlo
y si lo conectamos a un taladro para que saque tablitas perforadas?
ah como php que traduce a C para imprimir HTML
o C# que traduce a CIL y luego a ensamblador
o Java que traduce a bytecode y luego a ensamblador
o...
Había oído de los programas narcisistas, pero esto es la caña
¿y?
En sus diferentes órdenes para un solo tipo de ejecución, animado en un modelo competitivo.
pues que queréis que os diga, vaya chorrada
joer, entonces que compilador utilizo?
psss vaya chorrada, con un programa sacar un listado de otro programa que tendria que teclearse linea a linea y a mano en otro programa para que sacase otro listado...
tonteorías
Small Basic: Programming Is Funnnny funy and free, la pena es que es de necrosoft warning
http://msdn.microsoft.com/es-es/beginner/ff384126(en-us).aspx
#30 no es una chorrada. Yo programo con cierta frecuencia programas que generan otros programas, pero mira tu por donde, no sabía que se llamaban "quines". Es un artículo didáctico.
Y por cierto la salida del programa generador obviamente va por stdout, no se teclea.
Votada irrelevante.
Para estas cosas teneis otras webs.