Войти

В Киеве отлавливает коллаборантов и уклонистов

В Шевченковском районе столицы силовики устроили облаву.

Испанский генерал сделал шокирующее заявление о ВСУ 

Одобренная США помощь Украине не изменит ход конфликта на Украине.

В Киеве снесли памятник участникам Переяславской рады

Демонтированный монумент обещают поместить в музей авиации.

Снайперы-десантники из Бурятии ликвидировали группу украинских боевиков у Часов Яра (ВИДЕО)

Эксклюзивные кадры, снятые сквозь прицел снайперского оружия.


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

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

Новости, Information technology (IT) » Эстафета из 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






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



11.09.2013
Похожие статьи:
  • Газпром сворачивает программу газификации регионов
  • Газпром сворачивает программу газификации регионов
    «Газпром» принял программу газификации на 2014 год, которая будет меньше на 18,6%, чем в текущем году, и составит 27,6 млрд рублей. Причиной сокращения программы названы огромные долги потребителей за газ и неисполнение рядом регионов своих обязательств по подготовке потребителей к приёму газа.
  • Росатом в 2016г планирует завершение программы возврата ОЯТ российского про ...
  • Росатом в 2016г планирует завершение программы возврата ОЯТ российского про ...
    Госкорпорация “Росатом” в 2016 году планирует завершение российско-американской программы по возврату высокообогащенного ядерного топлива российского производства.
  • На Новопортовском месторождении завершена программа бурения в рамках опытно ...
  • На Новопортовском месторождении завершена программа бурения в рамках опытно ...
    «Газпром нефть» успешно завершила программу бурения в рамках опытно-промышленного освоения Новопортовского месторождения – одного из самых крупных разрабатываемых месторождений Ямала.
  • Зависимость от Совбеза ООН – провал политики США
  • Зависимость от Совбеза ООН – провал политики США
    Сенатор, мы только что слышали, что сказал о Сирии Лион Панетта. Сегодня в Сирии снова крайне напряженная ситуация. Хуже еще не было. И вы видели, что Россия и Китай наложили вето на попытку ООН применить более жесткие санкции против Сирии. Картина крайне удручающая. По нашим данным, погибли уже
  • Игорь Юргенс, глава Института современного развития, в интервью агентству B ...
  • Игорь Юргенс, глава Института современного развития, в интервью агентству B ...
    Он, безусловно, очень квалифицированный человек, Дмитрий Анатольевич, и, безусловно, справится с работой премьер-министра
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.