Реклама
Облако тегов
- ГЭС, Россию, США, Сирия, армия, газ, для, его, из, как, которые, марс, на, на кто тех, на по ДНР что Народной, на что США по для, на что море Черном НАТО, на что по США России, на что по как это, не, не что для как от, не что по это как, нефтегаз, нефть, по, против, российские, российского, снарядов, территории, того, том, тэк, что, что заявил, что не США это по, что не том, что сообщает, это, этом
Показать все теги
Популярное
-
ВС РФ продвигаются на Авдеевском направлении
Группировка войск «Центр» вошла на окраину с. -
Американский генерал признал, что учения НАТО проводятся против России
Этой весной около 90 тыс. военнослужащих НАТО -
Байден подписал закон о финансировании конфликта на Украине
Президент США также обвинил Китай, Иран и -
Шольц: мы — страны НАТО — не воюем с Россией
Канцлер Германии сделал очередной громкое -
«Связка прочна как никогда»: что Россия и Китай готовят Западу
Глава российского МИД Сергей Лавров завершил
В виде календаря
В виде списка
Архив записей
0
Квайн — компьютерная программа, которая выдаёт на выходе точную копию своего исходного текста. Японский рубист Юсукэ Эндо (Yusuke Endoh) создал нечто невероятное. Quine Relay — программа на Ruby, которая генерирует код программы на Scala, которая генерирует код программы на Scheme, которая генерирует… и так далее на 50-ти языках программирования, пока программа на REXX снова не генерирует изначальный код на Ruby.
Для проверки нужно сначала установить в системе все необходимые окружения. Под Ubuntu это можно сделать такой командой:
Запускаем программу с каждым интерпретатором/компилятором, по очереди.
В результате, итоговый код QR2.rb не отличается от первоначального QR.rb.
habrahabr
Смотрите также:
Эстафета из 50-ти квайнов
- Опубликовал: Energy
- Дата: 11-09-2013, 17:03
- Категория: Новости, Information technology (IT) » Эстафета из 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
Смотрите также:
Также рекомендуем:
Информация
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.