{"id":11164,"date":"2013-07-18T22:01:34","date_gmt":"2013-07-18T13:01:34","guid":{"rendered":"http:\/\/www.softantenna.com\/wp\/?p=11164"},"modified":"2013-07-18T22:03:20","modified_gmt":"2013-07-18T13:03:20","slug":"quine-relay","status":"publish","type":"post","link":"https:\/\/softantenna.com\/blog\/quine-relay\/","title":{"rendered":"50\u8a00\u8a9e\u3067\u69cb\u6210\u3055\u308c\u305f\u300cQuine \u30ea\u30ec\u30fc\u300d\u304c\u30b9\u30b4\u30a4"},"content":{"rendered":"<p><img decoding=\"async\" src=\"https:\/\/softantenna.com\/blog\/wp-content\/uploads\/2013\/07\/blogNewImage110.png\" alt=\"NewImage\" title=\"NewImage.png\" border=\"0\" width=\"512\" height=\"512\" \/><\/p>\n<p>\u300c<strong>\u81ea\u5206\u81ea\u8eab\u3092\u51fa\u529b\u3059\u308b REXX \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u51fa\u529b\u3059\u308b Python \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u51fa\u529b\u3059\u308b R \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u51fa\u529b\u3059\u308b (...\u7565...) \u3092\u51fa\u529b\u3059\u308b Scala \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u51fa\u529b\u3059\u308b Ruby \u30d7\u30ed\u30b0\u30e9\u30e0\u300d\u3092\u5b9f\u73fe\u3057\u305f\u300c<a href=\"http:\/\/d.hatena.ne.jp\/ku-ma-me\/20130715\/p1\">Quine \u30ea\u30ec\u30fc<\/a><\/strong>\u300d\u304c\u516c\u958b\u3055\u308c\u3066\u3044\u307e\u3059(<a href=\"https:\/\/github.com\/mame\/quine-relay\/\">Github<\/a>\u3001<a href=\"https:\/\/news.ycombinator.com\/item?id=6048761\">Hacker News<\/a>)\u3002<\/p>\n<p><a href=\"http:\/\/ja.wikipedia.org\/wiki\/%E3%82%AF%E3%83%AF%E3%82%A4%E3%83%B3_(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)\">Quine<\/a>\u3068\u306f\u3001\u81ea\u8eab\u306e\u30bd\u30fc\u30b9\u30b3\u30fc\u30c9\u3068\u5b8c\u5168\u306b\u540c\u3058\u6587\u5b57\u5217\u3092\u51fa\u529b\u3059\u308b\u30d7\u30ed\u30b0\u30e9\u30e0\u3002<strong>Quine \u30ea\u30ec\u30fc<\/strong>\u306f\u3053\u308c\u3092\u8a00\u8a9e\u3092\u5909\u3048\u3064\u3064\u5faa\u74b0\u3055\u305b\u3001\u6700\u7d42\u7684\u306b\u5143\u306eRuby\u30b9\u30af\u30ea\u30d7\u30c8\u3068\u540c\u3058\u3082\u306e\u304c\u51fa\u529b\u3055\u308c\u308b\u3088\u3046\u306b\u4f5c\u3089\u308c\u305f\u30d7\u30ed\u30b0\u30e9\u30e0\u3068\u3044\u3046\u3053\u3068\u3002<!--more--><\/p>\n<h3>\u3053\u308c\u306f\u30b9\u30b4\u30a4<\/h3>\n<p>Github\u306e\u8aac\u660e\u306b\u3088\u308b\u3068\u3001Quine \u30ea\u30ec\u30fc\u306f\u4ee5\u4e0b\u306e\u3088\u3046\u306b\u5b9f\u884c\u3057\u307e\u3059\u3002\u958b\u59cb\u306fQR.rb\u3002\u3067\u3053\u3053\u304b\u3089QR.scala\u3092\u751f\u6210\u3057\u307e\u3059\u3002\u4ee5\u4e0b\u7d9a\u884c\u3057\u2026\u3002<\/p>\n<pre>\n$ ruby QR.rb > QR.scala\n$ scalac QR.scala && scala QR > QR.scm\n$ gosh QR.scm > QR.bash\n$ bash QR.bash > QR.st\n$ gst QR.st > QR.tcl\n$ tclsh QR.tcl > QR.unl\n$ ruby unlambda.rb QR.unl > QR.vala\n$ valac QR.vala && .\/QR > QR.v\n$ iverilog -o QR QR.v && .\/QR -vcd-none > QR.ws\n$ ruby whitespace.rb QR.ws > qr.adb\n$ gnatmake qr.adb && .\/qr > QR.a68\n$ a68g QR.a68 > QR.awk\n$ awk -f QR.awk > QR.boo\n$ booi QR.boo > QR.bf\n$ beef QR.bf > QR.c\n$ gcc -o QR QR.c && .\/QR > QR.cpp\n$ g++ -o QR QR.cpp && .\/QR > QR.cs\n$ mcs QR.cs && mono QR.exe > QR.clj\n$ clojure QR.clj > QR.cob\n$ cobc -x QR.cob && .\/QR > QR.coffee\n$ coffee QR.coffee > QR.lisp\n$ clisp QR.lisp > QR.fs\n$ gforth QR.fs > QR.f\n$ f2c QR.f && tcc -o QR QR.c -L\/usr\/lib -lf2c && .\/QR > QR.f90\n$ gfortran -o QR QR.f90 && .\/QR > QR.go\n$ go run QR.go > QR.groovy\n$ groovy QR.groovy > QR.hs\n$ runghc QR.hs > QR.icn\n$ icont -s QR.icn && .\/QR > QR.i\n$ CC=tcc ick -b QR.i && .\/QR > QR.j\n$ jasmin QR.j && java QR > QR.java\n$ javac QR.java && java QR > QR.ll\n$ llvm-as QR.ll && lli QR.bc > QR.logo\n$ ucblogo QR.logo > QR.lua\n$ lua QR.lua > QR.makefile\n$ make -f QR.makefile > QR.il\n$ ilasm QR.il && mono QR.exe > QR.js\n$ nodejs QR.js > QR.m\n$ gcc -o QR QR.m && .\/QR > QR.ml\n$ ocaml QR.ml > QR.octave\n$ octave -qf QR.octave > QR.pasm\n$ parrot QR.pasm > QR.pas\n$ fpc QR.pas && .\/QR > QR.pl\n$ perl QR.pl > QR.php\n$ php QR.php > QR.pike\n$ pike QR.pike > QR.prolog\n$ swipl -q -t qr -f QR.prolog > QR.py\n$ python QR.py > QR.R\n$ R --slave < QR.R > QR.rexx\n$ rexx .\/QR.rexx > QR2.rb\n<\/pre>\n<p>\u6700\u7d42\u7684\u306b\u3001QR2.rb\u304c\u751f\u6210\u3055\u308c\u307e\u3059\u3002\u3053\u308c\u3060\u3051\u306e\u30b9\u30c6\u30c3\u30d7\u3092\u8e0f\u3093\u3067\u6700\u521d\u306eQR.rb\u3068QR2.rb\u304c\u5168\u304f\u540c\u3058\u306b\u306a\u3063\u3066\u3044\u308b\u3068\u3044\u3046\u306e\u3060\u304b\u3089\u30b9\u30b4\u30a4\u3067\u3059(\u6c57\u3002<\/p>\n<p>\u5b9f\u969b\u306b\u3053\u308c\u3060\u3051\u306e\u8a00\u8a9e\u51e6\u7406\u7cfb\u3092\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb\u3059\u308b\u306e\u306f\u304b\u306a\u308a\u5927\u5909\u306a\u306e\u3067\u4f5c\u8005\u306e\u65b9\u306f\u300cdebootstrap + chroot\u300d\u306e\u4f7f\u7528\u3092\u63a8\u85a6\u3057\u3066\u3044\u307e\u3059\u3002\u3055\u3089\u306b\u7c21\u5358\u306b\u6e08\u307e\u305b\u305f\u3044\u5834\u5408HackerNews\u3067\u751f\u6210\u3055\u308c\u305f\u30d5\u30a1\u30a4\u30eb\u3092\u30a2\u30c3\u30d7\u3057\u3066\u3044\u308b\u4eba\u304c\u3044\u307e\u3057\u305f\u3002<\/p>\n<ul>\n<li><a href=\"https:\/\/dl.dropboxusercontent.com\/u\/2683925\/bigquine.zip\">https:\/\/dl.dropboxusercontent.com\/u\/2683925\/bigquine.zip<\/a>\n<\/ul>\n<p><img decoding=\"async\" src=\"https:\/\/softantenna.com\/blog\/wp-content\/uploads\/2013\/07\/blogQR.rb_.png\" alt=\"QR rb\" title=\"QR.rb.png\" border=\"0\" width=\"560\" height=\"619\" \/><\/p>\n<p>QR.rb\u3067\u3059\u3002\u6a21\u69d8\u304c\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u300c\u81ea\u5206\u81ea\u8eab\u3092\u51fa\u529b\u3059\u308b REXX \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u51fa\u529b\u3059\u308b Python \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u51fa\u529b\u3059\u308b R \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u51fa\u529b\u3059\u308b (...\u7565...) \u3092\u51fa\u529b\u3059\u308b Scala \u30d7\u30ed\u30b0\u30e9\u30e0\u3092\u51fa\u529b\u3059\u308b Ruby \u30d7\u30ed\u30b0\u30e9\u30e0\u300d\u3092\u5b9f\u73fe\u3057\u305f\u300cQu [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":11162,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","footnotes":""},"categories":[75],"tags":[1256,154],"class_list":["post-11164","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-software","tag-quine","tag-ruby"],"_links":{"self":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts\/11164","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/comments?post=11164"}],"version-history":[{"count":0,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/posts\/11164\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/media\/11162"}],"wp:attachment":[{"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/media?parent=11164"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/categories?post=11164"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/softantenna.com\/blog\/wp-json\/wp\/v2\/tags?post=11164"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}