Как долго ваша (языковая) змея?


14

Исходя из задачи третьего порядка , ваша задача - написать программу на языке уроборос, которая использует как можно больше языков.

То есть на языке A напишите программу pA, которая выводит программу pB на языке B. Программа pB должна выводить программу pC на языке C и так далее, пока в конечном итоге программа не выведет исходную программу pA на языке A.

Никакие два языка в вашем цикле не могут быть одинаковыми или подмножествами или надмножествами друг друга. Ни одна из программ в цикле не может быть идентичной.

Самая длинная цепочка языков побеждает. Длина исходного кода будет тай-брейком.

Вот пример решения длины 3, данное Ventero.

s='print q<puts %%q{s=%r;print s%%s}>';print s%s

с Python генерирует этот фрагмент Perl

print q<puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}>

который генерирует следующий код Ruby

puts %q{s='print q<puts %%q{s=%r;print s%%s}>';print s%s}

который затем печатает оригинальный фрагмент Python:

s='print q<puts %%q{s=%r;print s%%s}>';print s%s



@Ypnypn Это не дубликат, не так ли? Я имею в виду, чтобы сделать цикл максимально длинным с помощью прерывателя связей длины исходного кода. Ни у кого еще не было возможности опубликовать длину 4 Уробора до этого :) Также петля отличается от цепочки.

На самом деле он очень похож на этот , но для этого не нужно было циклически повторять последовательность, поэтому здесь не было компонента quine.
Мартин Эндер

4
Зверь из 50 языков кажется победителем еще до того, как мы начали.

Ответы:


8

Вот цикл из 4 языков:

C -> Bash -> Пакетная обработка -> Python -> C

С

main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}

удар

echo "echo print 'main(){char *c=\"echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c\";printf(c,34,39,92,34,c,92,34,39,34);}'"

партия

echo print 'main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}'

питон

print 'main(){char *c="echo %cecho print %cmain(){char *c=%c%c%s%c%c;printf(c,34,39,92,34,c,92,34,39,34);}%c%c";printf(c,34,39,92,34,c,92,34,39,34);}'

Очень впечатляюще!
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.