sed で足し算
sed って足し算くらいできるんじゃないかと思ったので作ってみました。
http://shinh.skr.jp/koneta/add.sed
i@um ~> echo 1 1 | ./add.sed 2 i@um ~> echo 999 999 | ./add.sed 1998 i@um ~> echo 12345 54321 | ./add.sed 66666
ICFPC のクソ(誉)言語どもに比べれば sed はマシなんじゃという疑念が…
と、このあたりで 神々の偉業 のすさまじさ(っていうかfor知らずにgotoとifだけでコード書いちゃうような若気の至りとかを感じる側面はあるんだけど)がわかってきたので良かった。偉くなるのは無理でも、偉い人の偉さは知りたいよねみたいな。
sed で brainf*ck コンパイラ
http://d.hatena.ne.jp/mmatsuoka/20060712#1152632406
とかを見て、 x86 アセンブラを出すコンパイラを sed で書いてみました。
http://shinh.skr.jp/koneta/bf.sed
実行例は、
i@um ~> ./bf.sed hello.bf | gcc -x assembler - i@um ~> ./a.out Hello World! i@um ~> ./bf.sed echo.bf | gcc -x assembler - i@um ~> ./a.out abcd123 abcd123 ABCD123 abcd123
などと。ちなみに [ は 52 回くらいまでしか使えません。まぁ増やすのは簡単だけど。
sed マゾプログラミングはちゃんとコマンド覚えるとそんなにしんどくないかも。 GNU 拡張らしい i コマンドが便利すぎる。でもこれ無いとできないかというとできる気がするし、後はどれだけ気合いがあるかみたいな。もちろん woさんの偉業 を参考にしました。
いくつかコツはですね…