: : Разделы сайта : :

: : Партнёры : :

: : Ещё интересное : :
: : Партнеры : :

Обратная связьСвязь с администрацией

•   » » Эстафета из 50-ти квайнов 

Эстафета из 50-ти квайнов


Эстафета из 50-ти квайнов

Квайн — компьютерная программа, которая выдаёт на выходе точную копию своего исходного текста. Японский рубист Юсукэ Эндо (Yusuke Endoh) создал нечто невероятное. Quine Relay — программа на Ruby, которая генерирует код программы на Scala, которая генерирует код программы на Scheme, которая генерирует… и так далее на 50-ти языках программирования, пока программа на REXX снова не генерирует изначальный код на Ruby.

Для проверки нужно сначала установить в системе все необходимые окружения. Под Ubuntu это можно сделать такой командой:

$ apt-get install algol68g bash beef boo clisp clojure1.4 coffeescript \
  fp-compiler g++ gauche gawk gcc gforth gfortran ghc gnat gnu-smalltalk \
  gobjc golang groovy icont intercal iverilog jasmin-sable llvm lua5.2 \
  make mono-devel mono-mcs nodejs ocaml octave open-cobol openjdk-6-jdk \
  parrot perl php5-cli pike7.8 python r-base regina-rexx ruby1.9.3 scala \
  swi-prolog tcl8.5 ucblogo valac



Запускаем программу с каждым интерпретатором/компилятором, по очереди.

$ ruby QR.rb > QR.scala
$ scalac QR.scala && scala QR > QR.scm
$ gosh QR.scm > QR.bash
$ bash QR.bash > QR.st
$ gst QR.st > QR.tcl
$ tclsh QR.tcl > QR.unl
$ ruby unlambda.rb QR.unl > QR.vala
$ valac QR.vala && ./QR > QR.v
$ iverilog -o QR QR.v && ./QR -vcd-none > QR.ws
$ ruby whitespace.rb QR.ws > QR.adb
$ gnatmake QR.adb && ./QR > QR.a68
$ a68g QR.a68 > QR.awk
$ awk -f QR.awk > QR.boo
$ booi QR.boo > QR.bf
$ beef QR.bf > QR.c
$ gcc -o QR QR.c && ./QR > QR.cpp
$ g++ -o QR QR.cpp && ./QR > QR.cs
$ mcs QR.cs && mono QR.exe > QR.clj
$ clojure QR.clj > QR.cob
$ cobc -x QR.cob && ./QR > QR.coffee
$ coffee QR.coffee > QR.lisp
$ clisp QR.lisp > QR.fs
$ gforth QR.fs > QR.f
$ gfortran -o QR QR.f && ./QR > QR.f90
$ gfortran -o QR QR.f90 && ./QR > QR.go
$ go run QR.go > QR.groovy
$ groovy QR.groovy > QR.hs
$ runghc QR.hs > QR.icn
$ icont -s QR.icn && ./QR > QR.i
$  ick -b QR.i &&  ./QR > QR.j
$ jasmin QR.j && java QR > QR.java
$ javac QR.java && java QR > QR.ll
$ llvm-as QR.ll && lli QR.bc > QR.logo
$ ucblogo QR.logo > QR.lua
$ lua QR.lua > QR.makefile
$ make -f QR.makefile > QR.il
$ ilasm QR.il && mono QR.exe > QR.js
$ nodejs QR.js > QR.m
$ gcc -o QR QR.m && ./QR > QR.ml
$ ocaml QR.ml > QR.octave
$ octave -qf QR.octave > QR.pasm
$ parrot QR.pasm > QR.pas
$ fpc QR.pas && ./QR > QR.pl
$ perl QR.pl > QR.php
$ php QR.php > QR.pike
$ pike QR.pike > QR.prolog
$ swipl -q -t qr -f QR.prolog > QR.py
$ python QR.py > QR.R
$ R --slave < QR.R > QR.rexx
$ rexx ./QR.rexx > QR2.rb



В результате, итоговый код QR2.rb не отличается от первоначального QR.rb.

habrahabr





Читайте также: 


Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь. Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.
  • Комментариев: 0

Похожие новости:


  • Газпром сворачивает программу газификации регионов Газпром сворачивает программу газификации регионов
    «Газпром» принял программу газификации на 2014 год, которая будет меньше на 18,6%, чем в текущем году, и составит 27,6 млрд рублей. Причиной сокращения программы названы огромные долги потребителей

  • Росатом в 2016г планирует завершение программы возврата ОЯТ российского про ... Росатом в 2016г планирует завершение программы возврата ОЯТ российского про ...
    Госкорпорация “Росатом” в 2016 году планирует завершение российско-американской программы по возврату высокообогащенного ядерного топлива российского производства.

  • На Новопортовском месторождении завершена программа бурения в рамках опытно ... На Новопортовском месторождении завершена программа бурения в рамках опытно ...
    «Газпром нефть» успешно завершила программу бурения в рамках опытно-промышленного освоения Новопортовского месторождения – одного из самых крупных разрабатываемых месторождений Ямала.

  • Зависимость от Совбеза ООН – провал политики США Зависимость от Совбеза ООН – провал политики США
    Сенатор, мы только что слышали, что сказал о Сирии Лион Панетта. Сегодня в Сирии снова крайне напряженная ситуация. Хуже еще не было. И вы видели, что Россия и Китай наложили вето на попытку ООН

  • Игорь Юргенс, глава Института современного развития, в интервью агентству B ... Игорь Юргенс, глава Института современного развития, в интервью агентству B ...
    Он, безусловно, очень квалифицированный человек, Дмитрий Анатольевич, и, безусловно, справится с работой премьер-министра
  • Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.