「Just Another Ruby Hacker,」 by KEMURI
こないだKEMURIインタプリタを作ったのですが、"Just Another Python Hacker,"としか表示できず、非常に悔しい思いをしました。
そこで、KEMURIで任意の文字列を表示するプログラムを生成するプログラムを作成しました。
str2kemuri.rb
こういう感じで実行すればKEMURIで"Just Another Ruby Hacker,"と表示できます。
ruby -e 'print "Just Another Ruby Hacker,"' | ruby str2kemuri.rb | ruby kemuri.rb
動けばいいやという考えで書いたので、プログラム的にはループが無駄に多かったり、生成されたKEMURIプログラムも全然最適化されていなかったりと、ダメな部分がいっぱいあります。
ちなみに、上記プログラムが生成したKEMURIプログラムは以下のようになります。
`^^^^"^^'^"^^'^"^^'^"^^"'^"^^`^^^^^^^^"^''^"^^'^"^^`"^^'^"^^'^"^^'^"^^'^"^^'^"^^ "'^"^^`'^"^^'^"^^'^"^^'^"^^'^"^^'^"^^`^^^^^^^^^"^''^"^^"'^"^^`^^^^^^^"^^'^"^^'^" ^^~`^^^^^"^^'^"^^'^"^^'^"^^~^^^`^^^^^^^^^^^"^^`'^"^^'^"^^'^"^^'^"^^'^"^^'^"^^`^^ ^^^^^"^^'^"^^'^"^^~`"^^'^"^^'^"^^'^"^^'^"^^'^"^^"'^"^^~^^^`'^"^^'^"^^'^"^^'^"^^' ^"^^'^"^^`^^^^^^^^^"^''^"^^"'^"^^`"^^'^"^^'^"^^'^"^^'^"^^'^"^^"'^"^^~`^^^^^"^^'^ "^^'^"^^'^"^^~^^^`^^^^^"^^'^"^^'^"^^'^"^^`'^"^^'^"^^'^"^^'^"^^'^"^^'^"^^^`^^^^^" ^^'^"^^'^"^^'^"^^`^^^^^^^^"^''^"^^'^"^^`^^^^^^^"^^'^"^^'^"^^~`^^^^^^^^^^"^''^"^^ ~^^`^^^^^"^^'^"^^'^"^^'^"^^`'^"^^'^"^^'^"^^'^"^^'^"^^'^"^^`^^^^^^^"^^'^"^^'^"^^~ `"^^'^"^^'^"^^'^"^^'^"^^'^"^^"'^"^^~^^^`'^"^^'^"^^'^"^^'^"^^'^"^^'^"^^`^^^^^^^^" ^''^"^^'^"^^`^^^^^^^"^^'^"^^'^"^^~`^^^^^"^^'^"^^'^"^^'^"^^~^^^`^^^^^^^^"^''^"^^' ^"^^~`^^^^^"^^'^"^^'^"^^'^"^^~^`^^^^^"^^'^"^^'^"^^'^"^^`^^^^^^^^"^''^"^^'^"^^`"^ ^'^"^^'^"^^'^"^^'^"^^'^"^^"'^"^^`^^^^^"^^'^"^^'^"^^'^"^^`'^"^^'^"^^'^"^^'^"^^'^" ^^'^"^^^`^^^^^^"^^'^"^^'^"^^"'^"^^`^^^^^^^"^^'^"^^'^"^^~`^^^^^^^^^"^''^"^^"'^"^^ ~^^`^^^^^^^"^^'^"^^'^"^^`^^^^^^^"^^'^"^^'^"^^`"^^'^"^^'^"^^'^"^^'^"^^'^"^^"'^"^^ ~`^^^^^^^^^^"^''^"^^~^^`'^"^^'^"^^'^"^^'^"^^'^"^^'^"^^`^^^^^^^^^"^''^"^^"'^"^^`" ^^'^"^^'^"^^'^"^^'^"^^'^"^^"'^"^^~`^^^^^"^^'^"^^'^"^^'^"^^~^^^`^^^^^"^^'^"^^'^"^ ^'^"^^`^^^^^^"^^'^"^^'^"^^"'^"^^`^^^^^^^"^^'^"^^'^"^^~`^^^^^^^^^"^''^"^^"'^"^^~^ ^`^^^^^^^^"^''^"^^'^"^^`"^^'^"^^'^"^^'^"^^'^"^^'^"^^"'^"^^~`^^^^^^^^^^"^''^"^^~^ ^`'^"^^'^"^^'^"^^'^"^^'^"^^'^"^^`^^^^^^^^"^''^"^^'^"^^`^^^^^^^"^^'^"^^'^"^^~`^^^ ^^"^^'^"^^'^"^^'^"^^~^^^`^^^^"^^'^"^^'^"^^'^"^^"'^"^^`^^^^^^^^^"^''^"^^"'^"^^`^^ ^^^^^"^^'^"^^'^"^^~`"^^'^"^^'^"^^'^"^^'^"^^'^"^^"'^"^^~^^^|