Usando dos idiomas de su elección, escriba el " quine mutuo" más pequeño que pueda.
Es decir, escriba un programa P en el lenguaje A que muestre el código fuente de un programa Q en el lenguaje B, de modo que la salida del programa Q sea idéntica al código fuente de P.
Los archivos vacíos no cuentan, ni los programas de estilo "leer el archivo fuente e imprimirlo".
Editar: Las respuestas con P = Q ya no cuentan.
1
es una quine en varios idiomas. Entonces podría decir que es un programa J que imprime un programa Golfscript que imprime un ...... y así sucesivamente.Respuestas:
> <> (Pez) y Python - 26 caracteres
Genera este Python
fuente
"
y'
habilita el análisis de cadenas, por lo que todo el programa simplemente se inserta en la pila y nunca se muestra."
habilita el análisis de cadenas. Lee todo el programa y luego vuelve al primero"
y ejecuta el programa consigo mismo en la pilaprint \00gr00g:a9*2+$' tnirp'>o<
sale después del tiempo de espera. Estoy bastante seguro de que esto se debe a queg
copia el contenido real de la celda, peroo
genera la versión ASCII del carácter y"
no es un código de carácter ASCII válido. ideone.com/kaM0r"
es ASCII 34. Su intérprete debe estar apagado.Python y Ruby, 39 personajes
Este fragmento de Python
genera este fragmento de Ruby
que luego genera nuevamente el fragmento de Python inicial:
Tenga en cuenta que esto es similar a la respuesta de JB .
fuente
C y Perl, 73
Esta C:
... genera el siguiente Perl:
... que devuelve la C.
fuente
main(s){printf(s="print q<main(s){printf(s=%c%s%1$c,34,s);}>",34,s);}
C y C ++, 123 caracteres
Este C (compilable con gcc v4.3.4):
genera este (idéntico) C ++ (compilable con g ++ 4.3.4, una advertencia):
Esto está dentro de las reglas publicadas. : P Y, como Ventero, esto se basa en la respuesta de JB .
fuente
Java a Python - 219
Java:
Pitón:
Hace uso del hecho de que Python permite
'
cadenas; esto hace que sea mucho más fácil escribir la fuente del programa java en el programa python.fuente
Python + Piet one-liners: 417 caracteres +
73917107 ejecutando codelesEste script de Python produce una imagen de 7393 x 2; el bloque 2x2 más a la derecha del cual es un "centinela" que termina el programa; así que no estoy contando esos; y la segunda fila es de otro modo blanca. Probablemente pueda seguir desarrollando el código piet usando cadenas de suma / resta / multiplicación en lugar del ingenuo algoritmo binario ... pero no quiero dar una solución a un rompecabezas futuro.
No voy a publicar la imagen aquí, debido a sus dimensiones ridículas. Si desea verlo, ejecute el código de Python y canalice la salida a un archivo .ppm. Luego, convierta el .ppm a .gif, y ejecute la salida en Rapapaing . (alternativamente, use un intérprete de Piet que no sea web y que asimile .ppm)
editar: jugó un poco el piet al reducir el peso de Hamming de los nombres de variables.
menos golf pre-quine :
Esta es una versión anterior, antes de darme cuenta de que podía convertirla en una frase. Es marginalmente más fácil de entender. La función P traduce un conjunto de instrucciones especiales en Piet; y la función p toma un número entero y produce una secuencia de instrucciones para crear ese número entero en la pila. Solo estoy usando las instrucciones
=,+,:,|
, por lo que esto probablemente podría hacerse más eficiente ... pero me gusta tener un compilador Piet completo (de algún tipo) en la fuente.fuente
/Brainf..k/, 6988 bytes
Brainfuck
Pruébalo en línea!
Brain-Flak
Pruébalo en línea!
Brain-Flak podría pasar el tiempo en TIO.
Explicación
Próximamente.
fuente
Explanation coming soon
->Jan 27
Ruby y Python (393 + 413 = 806 caracteres)
Ligero cambio de esta respuesta mía. Definitivamente podría reducirse ya que simplemente codifiqué la entrada sin ninguna optimización.
Rubí (393 caracteres)
Python (413 caracteres)
fuente
Python 2 a Befunge 98,
9478Nuevamente, haciendo uso de las dos formas de hacer cuerdas de Python:
Pitón:
Befunge 98:
El programa python formatea la cadena para que se incluya a sí mismo y a los caracteres para la comilla simple y doble.
El programa Befunge funciona así:
<
: mover hacia la izquierda y envolver. Entonces ahora ejecutamos los comandos de derecha a izquierda"
: haz que cada personaje que encontremos sea empujado a la pila hasta que encontremos otro"
, así que empujamos:Que en realidad es solo el programa Python, invertido debido a la forma en que Befunge imprime (que es un bucle pop + print)
'M
: empujarM
a la pila.M
también es el número 77, que es uno menos que el número de caracteres empujados a la pila por el"
s.k
: saca el valor superior de la pila (M
) y realiza la siguiente operación muchas veces, más una.,
: saca el valor superior de la pila e imprime el carácter.@
: finaliza el programa.fuente
Subcarga y Betaload , 16 bytes (no competitivos)
Subcarga:
Betaload:
Betaload es un superconjunto de Underload, por lo que podrían ser dos respuestas de Underload.
Esto no es competitivo porque Betaload se creó después de publicar este desafío.
fuente
Clipper y C (111 + 108 = 219 caracteres)
Clipper (111)
C (108)
Esto es un poco una evasión porque:
?'foo'
:-)?
y'
s.#include <stdio.h>
, por lo que da una advertencia del compiladorfuente
PRINT
comando BÁSICO también podría abreviarse?
:-)Python y ~ - ~! - 77 y 81 = 158
Este código de Python:
genera esto ~ - ~! código:
Definitivamente se puede mejorar mucho, y adopta un montón de las otras respuestas.
fuente
Javascript y Windows .bat (71 y 81)
y
fuente