简评:这个 GitHub 项目蛮有趣的,不过想玩这个需要一台配置比较好的电脑才行。
这是一个 Ruby 程序,它能够生成 Rust 程序,再生成 Scala 程序,接着生成 Scheme 程序……通过 128 种编程语言后,最后再次生成原始的 Ruby 代码
如果你用的是 Ubuntu 系统(Bionic Beaver),可以按以下步骤简单操作:
- 安装所有的编译器
- 在每个编译器上运行每个程序
p.s. 编译一些文件可能需要大量内存
如果想省时省力的话,可以查看 50 种编程语言的旧版本
用法类似,安装所有的编译器,并在每个编译器上运行每个程序:
- 键入以下 apt-get 命令进行安装
$ sudo apt-get install algol68g bash bf boo clisp clojure1.4 \
coffeescript f2c fp-compiler g++ gauche gawk gcc gforth gfortran ghc \
gnat gnu-smalltalk gobjc golang groovy icont iconx 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 ruby2.0 scala swi-prolog tcl ucblogo valac
2. 运行程序
$ ruby QR.rb > QR.scala
$ scalac QR.scala && CLASSPATH=. 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
$ bf 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 -O2 -x QR.cob && ./QR > QR.coffee
$ coffee QR.coffee > QR.lisp
$ clisp QR.lisp > QR.fs
$ gforth QR.fs > QR.f
$ f2c QR.f && gcc -o QR QR.c -L/usr/lib -lf2c && ./QR > QR.f90
$ gfortran -o QR QR.f90 && ./QR > QR.go
$ go run QR.go > QR.groovy
$ groovy QR.groovy > QR.hs
$ ghc QR.hs && ./QR > QR.icn
$ icont -s QR.icn && ./QR > QR.i
$ ick -bfO QR.i && ./QR > QR.j
$ jasmin QR.j && CLASSPATH=. java QR > QR.java
$ javac QR.java && CLASSPATH=. java QR > QR.ll
$ llvm-as QR.ll && lli QR.bc > QR.logo
$ logo 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
Have fun~
GitHub: 128 Language Quine
推荐阅读:Python 的数学仙境之旅