ページへ戻る

− Links

 印刷 

GUIGUI01​/memo23 のバックアップ差分(No.3) :: OSASK計画

osaskwiki:GUIGUI01/memo23 のバックアップ差分(No.3)

« Prev[4]  Next »[5]
2: 2009-01-11 (日) 10:47:49 ソース[6] 3: 2009-01-11 (日) 10:47:49 ソース[7]
Line 8: Line 8:
-今を去ること3年弱つまり2006年ごろ、一部の人たちで Code Golf という「遊び」がはやりました。これはありていに言えば、ある動作をするプログラムをどれだけ短く作れるか、というものです。テーマはいろいろありましたが、一番盛り上がって追求されたのは、Linuxで動作可能なELFファイルで、"hello, world\n"を出力させる最小のプログラム、ということでした。このテーマは特に ELF Golf と呼ばれたほどです。 -今を去ること3年弱つまり2006年ごろ、一部の人たちで Code Golf という「遊び」がはやりました。これはありていに言えば、ある動作をするプログラムをどれだけ短く作れるか、というものです。テーマはいろいろありましたが、一番盛り上がって追求されたのは、Linuxで動作可能なELFファイルで、"hello, world\n"を出力させる最小のプログラム、ということでした。このテーマは特に ELF Golf と呼ばれたほどです。
--参考: http://binary.nahi.to/b2con2006_sato.pdf --参考: http://binary.nahi.to/b2con2006_sato.pdf
 +--ゴルフの由来は、できるだけ少ない打数で目的を達する、というところが似ているからなんだと思います。
-これは一大ブームになり、当時の「web 2.0」というブーム名にあやかって「binary 2.0」と呼ばれたりもしました。そして ELF Golf の結論はアリアリ("Hello, World!")で58Bということになりました。 -これは一大ブームになり、当時の「web 2.0」というブーム名にあやかって「binary 2.0」と呼ばれたりもしました。そして ELF Golf の結論はアリアリ("Hello, World!")で58Bということになりました。
--多くの人はこれで満足したようですが、僕はこれで満足するのはおかしいと思います。というのは、これは指定されたローダで最小は何かという話でしかないのです。アプリケーションがこんなに努力しているのに、ローダやAPIはドンくさいままです。もしローダも改良が許されるとしたらどうでしょうか。つまりELFじゃなくてもよくて、どんな汎用的なフォーマットを考案してもいいのではないでしょうか。それこそ真のx86最小であって、ここまできたらそれが一体どのくらいなのか知りたくはないでしょうか?+-多くの人はこれで満足したようですが、僕はこれで満足するのは中途半端だと思います。というのは、これは指定されたローダでの最小は何かという話でしかないのです。アプリケーションがこんなに努力しているのに、ローダやAPIはドンくさいままです。もしローダも改良が許されるとしたらどうでしょうか。つまりELFじゃなくてもよくて、汎用的であればどんなフォーマットを採用してもいいのではないでしょうか。それこそ真のx86最小であって、それが一体どのくらいなのか知りたくはないでしょうか?
-いうなれば、 ELF Golf は小学生の部の最強でしかなく、僕が言っているのは無差別級です。そっちのほうが格段に面白いと思いませんか?・・・普通の人は思わないかもしれませんが、僕は思うのです!・・・ちなみに、この話の先にはx86にすら限定せず、CPUの命令セットまで自由に改良できるスーパー無差別級というのがあるはずです(なんらかのバイトコードとかでもいいと思います)。どうせならそれをやるべきだというのは僕も賛成ですが、一気にそこまでいくと手に負えないので(少なくとも僕は手に負えなかった)、まずはx86最小を極めてからにしました。 -いうなれば、 ELF Golf は小学生の部の最強でしかなく、僕が言っているのは無差別級です。そっちのほうが格段に面白いと思いませんか?・・・普通の人は思わないかもしれませんが、僕は思うのです!・・・ちなみに、この話の先にはx86にすら限定せず、CPUの命令セットまで自由に改良できるスーパー無差別級というのがあるはずです(なんらかのバイトコードとかでもいいと思います)。どうせならそれをやるべきだというのは僕も賛成ですが、一気にそこまでいくと手に負えないので(少なくとも僕は手に負えなかった)、まずはx86最小を極めてからにしました。
-(2) -(2)
« Prev[4]  Next »[5]