Mit zwei Sprachen Ihrer Wahl, schreiben die kleinste „mutual quine “ Sie können.
Das heißt, schreiben Sie ein Programm P in Sprache A, das den Quellcode für ein Programm Q in Sprache B ausgibt, so dass die Ausgabe des Programms Q mit dem Quellcode für P identisch ist.
Leere Dateien werden weder gezählt, noch werden Programme im Stil "Quelldatei lesen und drucken" ausgeführt.
Edit: Antworten mit P = Q zählen nicht mehr.
1
ist ein Quine in mehreren Sprachen. Man könnte also sagen, es ist ein J-Programm, das ein Golfscript-Programm druckt, das ein ...... und so weiter druckt.Antworten:
> <> (Fisch) und Python - 26 Zeichen
Erzeugt diese Python
quelle
"
und'
Zeichenfolgenanalyse ermöglichen, so dass das gesamte Programm nur auf den Stapel geschoben wird und nie angezeigt."
Option ermöglicht das Parsen von Zeichenfolgen. Es reads.the ganze Programm und dann wickelt wieder um to.The erste"
und führt das Programm mit sich selbst auf dem Stackprint \00gr00g:a9*2+$' tnirp'>o<
nach Ablauf der Zeit ausgegeben. Ich bin mir ziemlich sicher, dass dies daran liegt, dassg
der tatsächliche Zelleninhalt kopiert wird, abero
die ASCII-Version des Zeichens"
ausgegeben wird und kein gültiger ASCII-Zeichencode vorliegt. ideone.com/kaM0r"
ist ASCII 34. Ihr Interpreter muss ausgeschaltet sein.Python und Ruby, 39 Zeichen
Dieses Python-Snippet
generiert dieses Ruby-Snippet
Das erzeugt dann wieder das anfängliche Python-Snippet:
Beachten Sie, dass dies der Antwort von JB ähnelt .
quelle
C und Perl, 73
Dieses C:
... gibt folgendes Perl aus:
... das gibt das C zurück.
quelle
main(s){printf(s="print q<main(s){printf(s=%c%s%1$c,34,s);}>",34,s);}
C und C ++, 123 Zeichen
Dieses C (kompilierbar mit gcc v4.3.4):
gibt dieses (identische) C ++ aus (kompilierbar mit g ++ 4.3.4, eine Warnung):
Dies entspricht den Regeln, wie sie veröffentlicht wurden. : P Und wie bei Ventero basiert dies auf der Antwort von JB .
quelle
Java nach Python - 219
Java:
Python:
Nutzt die Tatsache, dass Python
'
Strings zulässt ; Dies macht es viel einfacher, den Quellcode des Java-Programms in das Python-Programm zu schreiben.quelle
Python + Piet-Einzeiler: 417 Zeichen +
73917107 ausführende CodelsDieses Python-Skript erstellt ein 7393 x 2-Bild. der am weitesten rechts stehende 2x2-Block ist ein "Sentinel", der das Programm beendet; also zähle ich die nicht; und die zweite Reihe ist sonst weiß. Ich kann den Piet-Code wahrscheinlich noch weiter reduzieren, indem ich Additions- / Subtraktions- / Multiplikationsketten anstelle des naiven binären Algorithmus verwende ... aber ich möchte keine Lösung für ein zukünftiges Rätsel herausgeben.
Ich werde das Bild nicht hier posten, weil es so lächerlich ist. Wenn Sie es sehen möchten, führen Sie den Python-Code aus und leiten Sie die Ausgabe in eine PPM-Datei. Konvertieren Sie dann die PPM-Datei in eine GIF-Datei, und führen Sie die Ausgabe bei Rapapaing aus . (Alternativ können Sie auch einen Nicht-Web-Piet-Interpreter verwenden, der .ppm enthält.)
edit: golf den piet ein wenig durch reduzierung des hamming-gewichts von variablennamen.
weniger Golf-Pre-Quine :
Dies ist eine frühere Version, bevor mir klar wurde, dass ich sie einzeilig machen könnte. Es ist etwas einfacher zu verstehen. Die Funktion P übersetzt einen speziellen Befehlssatz in Piet; und die Funktion p nimmt eine ganze Zahl und erzeugt eine Folge von Anweisungen, um diese ganze Zahl auf dem Stapel zu erzeugen. Ich benutze nur die Anweisungen
=,+,:,|
, also könnte dies wahrscheinlich effizienter gemacht werden ... aber ich mag es irgendwie, einen ausgewachsenen Piet-Compiler (von Art) in der Quelle zu haben.quelle
/Brainf..k/, 6988 Bytes
Brainfuck
Probieren Sie es online!
Brain-Flak
Probieren Sie es online!
Der Brain-Flak könnte bei TIO ausfallen.
Erläuterung
Kommt bald.
quelle
Explanation coming soon
->Jan 27
Ruby und Python (393 + 413 = 806 Zeichen)
Leichte Änderung meiner Antwort . Könnte definitiv reduziert werden, da ich die Eingabe nur ohne Optimierung hartcodiert habe.
Rubin (393 Zeichen)
Python (413 Zeichen)
quelle
Python 2 bis Befunge 98,
9478Verwenden Sie erneut die beiden Möglichkeiten von Python, um Zeichenfolgen zu erstellen:
Python:
Befunge 98:
Das Python-Programm formatiert den String so, dass er sich selbst und die Zeichen für das einfache und das doppelte Anführungszeichen enthält.
Das Befunge-Programm funktioniert folgendermaßen:
<
: Bewegen Sie sich nach links und wickeln Sie sich um. Also führen wir jetzt die Befehle von rechts nach links aus"
: mach es so, dass jedes Zeichen, auf das wir stoßen, auf den Stapel geschoben wird, bis wir auf ein anderes stoßen"
, also drücken wir:Das ist eigentlich nur das Python-Programm, umgekehrt, weil Befunge druckt (das ist eine Pop + Print-Schleife)
'M
:M
auf den Stapel schieben .M
ist auch die Zahl 77, die eins weniger ist als die Anzahl der Zeichen, die vom"
s auf den Stapel geschoben werden .k
: Entferne den obersten Wert vom Stapel (M
) und führe die nächste Operation so oft aus, plus eins.,
: Den höchsten Wert vom Stapel nehmen und das Zeichen ausdrucken.@
: Programm beenden.quelle
Unterlast und Betaload , 16 Bytes (nicht konkurrierend)
Unterlast:
Betaload:
Betaload ist eine Obermenge von Underload, dies könnten also zwei Underload-Antworten sein.
Dies ist kein Wettbewerb, da Betaload erstellt wurde, nachdem diese Herausforderung veröffentlicht wurde.
quelle
Clipper und C (111 + 108 = 219 Zeichen)
Schermaschine (111)
C (108)
Dies ist eine kleine Ausrede, weil:
?'foo'
:-)?
und'
s zusammenzudrücken.#include <stdio.h>
, daher wird eine Compiler-Warnung ausgegebenquelle
PRINT
Befehl könnte auch abgekürzt?
werden :-)Python und ~ - ~! - 77 und 81 = 158
Dieser Python-Code:
gibt diese ~ - ~! Code:
Kann definitiv stark verbessert werden und übernimmt eine ganze Reihe von den anderen Antworten.
quelle
Javascript und Windows .bat (71 und 81)
und
quelle