中の人の徒然草392
昨日の晩からPEファイルの解析にはまっています。
昔遊びでコンパイラ作った時にやった事ありますが、詳細を忘れていたので改めてしています。
PEファイルの解析というと難しく聞こえますが実は凄く簡単です。
仕様書を読みながらファイルをバイナリ形式で読みとるだけです。
プログラミングとしては簡単で単調な作業ですが、知的興奮が味わえます。
DUMPBINをお供にテストファーストで行っていると、徐々にファイルの秘密が明らかになっていくので、非常に楽しいです♪
PEファイルの解析ツールが出来上がったら、次はリンカの実装に挑戦します。
昔リンカまでやろうと思っていたのですが、仕事に追われてちょっとしか出来なかったorz
ということで、仕事が速くなって余裕が出来た今、再チャレンジしています。
多分3月中にはリンカの実装に移れるはず。
リンカが終わったらアセンブラの実装をします。
アセンブリ言語の実装も昔ちょっとした事あるのですが、当時よりもIntelの機械語フォーマットが複雑になっているから楽しそうです。
アセンブリ言語は使用さえわかれば簡単ですが、マクロがちょっと厄介です。
マクロを導入するとミスしやすくて、当時は難しいと感じました。
でも、当時よりもかなりプログラミング力がレベルアップしたから、今は大丈夫かな?と楽観視しています。
リンカとアセンブリ言語の実装が終わったら、次は本格的なコンパイラの実装をやります。
それが終わったらやっぱりOSです。
仕事用の学習や急用も入るから中々進まないと思いますが、少しずつ自分の知的好奇心を満たしていきます。
それが私にとっての一番のストレス解消法です。
やはり仕事用の学習よりも、自分の知的好奇心を満たす学習の方が楽しいです。