Nach der dritten Herausforderung besteht Ihre Aufgabe darin, ein Ouroboros- Programm zu schreiben , das so viele Sprachen wie möglich verwendet.
Das heißt, in Sprache A schreiben Sie ein Programm pA, das Programm pB in Sprache B ausgibt. Programm pB sollte Programm pC in Sprache C ausgeben, und so weiter, bis schließlich ein Programm das ursprüngliche Programm pA in Sprache A ausgibt.
Keine zwei Sprachen in Ihrer Schleife können gleich oder Teilmengen oder Obermengen voneinander sein. Keines der Programme in der Schleife darf identisch sein.
Die längste Sprachenkette gewinnt. Die Länge des Quellcodes ist der Auslöser.
Hier ist eine Beispiellösung der Länge 3 von Ventero.
s='print q<puts %%q{s=%r;print s%%s}>';print s%s
Mit Python wird dieses Perl-Snippet generiert
print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>
Dadurch wird der folgende Ruby-Code generiert
puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}
Daraufhin wird das ursprüngliche Python-Snippet gedruckt:
s='print q<puts %%q{s=%r;print s%%s}>';print s%s