バイナリ・プログラミング、バイナリ・ハック
2006-12-22


ASAHIネット([URL]のjouwa/salonからホットコーナー([URL] )に転載したものから。
---
 Binary 2.0なんて集まりがあるのね。

[URL]
「PS3上のLinuxをWiiリモコンで操作」---Binary 2.0 カンファレンス2006よ


 コンピュータがある以上、こういうシステムの中をえぐるプログラミングは、絶対に重要。悪用するとどうのこうの以前に、技術屋であれば、ブラックボックスの中身を知るのは絶対的に重要なこと。
 その意味で、こういう会合があるってのは、とてもいいことです。

[URL]
時代はバイナリ?低レイヤー・プログラミングの楽しさ

 低レベルプログラミングというと、単に技術水準が低いプログラミングになるので(苦笑)、低レイヤー・プログラミングといってるんだろうね。
 初めて知ったが、
[URL]
高林哲, 鵜飼文敏, 佐藤祐介, 浜地慎一郎, 首藤一幸著「Binary Hacks ―ハッカー秘伝のテクニック100選」
という本もあるのね。
 バイナリ・ハックというからには、2進数であることを駆使したビット演算プログラミングのハックかと思った。
 でも、目次をみると、彼らがいうバイナリ・ハックは、そういう意味じゃないのね。オブジェクトファイルを操作したり、コンパイラ、リンカ、アセンブラ、ローダ、プロファイラ、デバッガなどのツールのTips集みたい感じね。

 ここにあるような話よりもっと面白いのが、2進数のビット演算のハック、ほんとのバイナリ・プログラミング、バイナリ・ハック。
 本物のハッカーがどういうバイナリ・ハックを築いてきたか、驚異のプログラミングテクニックを知りたい人は、
[URL]
ジュニア,ヘンリー・S. ウォーレン著, 滝沢徹, 赤池英夫, 藤波順久, 鈴木貢, 葛毅, 玉井浩訳「ハッカーのたのしみ―本物のプログラマはいかにして問題を解くか」
が必読。
 おれ、25年くらい前に管理工学研究所に就職したとき、ビット操作のテクニックって全然知らなかった。かの有名な、XOR3連発による一時変数なしのデータ交換すら知らなかった。
 当時は、日本語入力ソフトの松茸や日本語ワープロの松、新松などアセンブラで書いていた。で、データ交換用のマクロ定義にXOR3連発があって、何をやっているのか全然わからなかった。
「え、中村。お前、そんなのも知らないの?」といわれて、恥ずかしかった。
 以来、勉強したら、少しはわかるようになったかというと、全然(泣)。
 わはは、ま、一応、謙遜ですけど。
 嘘、こけ。まるっきり、事実だろ。\(^O^)/
 さすがに2の割り算はシフトでやるくらいは知ってたけど。^^;

 ともかく、そんなおれだから、「ハッカーのたのしみ」は驚異の世界。XOR3連発なんて、初歩の初歩の初歩の初歩。
 ビットの魔術を知りたい人は、ほんとに必読。
 おれなんか、理解できずに、全部、忘れたけどね。\(^O^)/

 とにかく、プログラミングってね。こういうハードウェアの命令レベルに近いところと、LispやProlog、最近の流行りでいえば、HaskellやCleanなどの関数型言語のように抽象度の高いところを学べば、あとはなんとでもなるのよ。
 ほかの、CやC++やJavaやJavaScriptやPerlやRubyやPythonなんて、全部、その中間だからね。
 慶応大学教授かつLispハッカーの故中西正和先生の持論は、「プログラミングの最初にアセンブラとLispを教えるべし」でした。BASICとかそんなのでプログラミング入門をして、変な癖がつく前に、アセンブラとLispだけやれば、あとはなんとでもなるということ。

続きを読む


コメント(全3件)
コメントをする


記事を書く
powered by ASAHIネット