En utilisant les deux langues de votre choix, écrivez la plus petite « quine mutuelle » possible.
C'est-à-dire, écrivez un programme P en langage A qui sort le code source d'un programme Q en langage B, de sorte que la sortie du programme Q soit identique au code source de P.
Les fichiers vides ne comptent pas, pas plus que les programmes de style "lire le fichier source et l’imprimer".
Edit: Les réponses avec P = Q ne comptent plus.
1
est une quine en plusieurs langues. Donc, vous pouvez dire que c'est un programme J qui imprime un programme Golfscript qui imprime un ...... et ainsi de suite.Réponses:
> <> (Poisson) et Python - 26 caractères
Génère ce Python
la source
"
et'
permettre l' analyse des chaînes, de sorte que l'ensemble du programme est tout simplement poussé sur la pile et ne jamais affiché."
permet l'analyse de chaînes. Il lit.le programme entier et ensuite revient au premier"
et l'exécute avec lui-même sur la pileprint \00gr00g:a9*2+$' tnirp'>o<
après expiration du délai. Je suis presque sûr que c'est parce queg
copie le contenu réel de la cellule, maiso
génère la version ASCII du caractère et"
n'est pas un code de caractère ASCII valide. ideone.com/kaM0r"
est en ASCII 34. Votre interprète doit être éteint.Python et Ruby, 39 caractères
Cet extrait de code Python
génère cet extrait de Ruby
qui génère alors à nouveau l'extrait de code initial Python:
Notez que ceci est similaire à la réponse de JB .
la source
C et Perl, 73
Ce C:
... génère le Perl suivant:
... qui renvoie le C
la source
main(s){printf(s="print q<main(s){printf(s=%c%s%1$c,34,s);}>",34,s);}
C et C ++, 123 caractères
Ce C (compilable avec gcc v4.3.4):
renvoie ce C ++ (identique) (compilable avec g ++ 4.3.4, un avertissement):
Ceci est dans les règles telles que publiées. : P Et, comme dans Ventero, ceci est basé sur la réponse de JB .
la source
Java en Python - 219
Java:
Python:
Exploite le fait que python autorise les
'
chaînes; cela facilite beaucoup l'écriture de la source du programme java dans le programme python.la source
Python + Piet one-liners: 417 caractères +
73917107 codes d'exécutionCe script Python produit une image de 7393 x 2; le bloc 2x2 le plus à droite est une "sentinelle" qui termine le programme; donc je ne compte pas ceux-là; et la deuxième rangée est autrement blanche. Je peux probablement jouer davantage au code piéton en utilisant des chaînes d’addition / soustraction / multiplication au lieu de l’algorithme binaire naïf ... mais je ne veux pas donner une solution à un futur casse-tête.
Je ne vais pas poster l'image ici, à cause de ses dimensions ridicules. Si vous voulez le voir, exécutez le code python et dirigez la sortie vers un fichier .ppm. Ensuite, convertissez le fichier .ppm en fichier .gif et exécutez la sortie sur Rapapaing . (alternativement, utilisez un interpréteur Piet non web qui parle .ppm)
edit: golfé le pied un peu en réduisant le poids de Hamming des noms variables.
pré-quine moins golfée :
Ceci est une version précédente, avant que je réalise que je pouvais en faire un one-liner. C'est un peu plus facile à comprendre. La fonction P traduit un jeu d'instructions spéciales en Piet; et la fonction p prend un entier et produit une séquence d'instructions pour créer cet entier sur la pile. Je n'utilise que les instructions
=,+,:,|
, donc cela pourrait probablement être rendu plus efficace ... mais j'aime bien avoir un compilateur Piet complet (de toutes les sortes) dans le code source.la source
/Brainf..k/, 6988 octets
Brainfuck
Essayez-le en ligne!
Flak cérébrale
Essayez-le en ligne!
La Brain-Flak pourrait expirer sur TIO.
Explication
Arrive bientôt.
la source
Explanation coming soon
->Jan 27
Ruby et Python (393 + 413 = 806 caractères)
Léger changement de cette réponse de la mienne. Pourrait certainement être réduit puisque je viens de coder en dur l'entrée sans aucune optimisation.
Ruby (393 caractères)
Python (413 caractères)
la source
Python 2 à Befunge 98,
9478Encore une fois, utilisant les deux façons de faire des chaînes de Python:
Python:
Befunge 98:
Le programme python formate la chaîne pour qu'elle-même et les caractères des guillemets simples et doubles.
Le programme Befunge fonctionne comme ceci:
<
: se déplacer vers la gauche, et enrouler autour. Alors maintenant, nous exécutons les commandes de droite à gauche"
: fait en sorte que chaque caractère que nous rencontrons soit placé dans la pile jusqu'à en rencontrer un autre"
, nous poussons donc:Ce qui est en fait juste le programme python, inversé à cause de la façon dont Befunge imprime (qui est une boucle pop + print)
'M
: pousserM
à la pile.M
est également le nombre 77, qui est un de moins que le nombre de caractères mis à la pile par le"
s.k
: affiche la valeur la plus élevée de la pile (M
) et effectue l'opération suivante plusieurs fois, plus une.,
: extraire la valeur supérieure de la pile et imprimer le caractère.@
: terminer le programme.la source
Underload and Betaload , 16 octets (non concurrents)
Sous-charge:
Betaload:
Betaload est un sur-ensemble de sous-charge, il pourrait donc s'agir de deux réponses de sous-charge.
Ceci n'est pas en compétition car Betaload a été créé après la publication de ce défi.
la source
Clipper et C (111 + 108 = 219 caractères)
Tondeuse (111)
C (108)
C'est un peu une échappatoire parce que:
?'foo'
:-)?
and and'
.#include <stdio.h>
, donc ça donne un avertissement au compilateurla source
PRINT
commande BASIC pourrait également être abrégée?
:-)Python et ~ - ~! - 77 et 81 = 158
Ce code Python:
sort ce ~ - ~! code:
Peut certainement être beaucoup amélioré, et adopte tout un tas de réponses.
la source
Javascript et Windows .bat (71 et 81)
et
la source