リバースエンジニアリングと論理学等についてつらつらと

 リバースエンジニアリングとかって、グラフだかなんだかの理論で表現できないんでしょうか。アルゴリズムの教科書を見ていると、たまに論理ばっかりで嫌になっていたのですが、最近は論理式見ても嫌にならなくなりました。
 コンパイラ最適化の書籍の、コードフローやデータフローを解析の章で、コードやデータの表現にグラフや集合などの論理を使っています。余計な命令の名前やレジスタの名前といったものを除外して表現した方が、コードの上でも扱いやすいんでしょうね。そういうのを見ていると、じゃあリバースエンジニアリングという作業はどんな風に表現できるのか、とか考えてしまうわけです。だからといって論理学や数学が大好きになったわけでもありません(残念ながら)。道具として必要になってきた、ていうのが正しいんでしょうか。高校生の時では頭で理解しても、実感できなかったことが今更わかってきた感じですかねー。
 あ、そもそもコードを書くことと、アルゴリズムを理解してコードという表現に落とし込む(実装する)ことは違うように、「リバースエンジニアリング」の一言でひとくくりにすることが間違ってる気がしてきました。
 そんなこんなで、課題をやった後の思考回路でした。そいえばAVTokyoの感想書いてなかったので、後で書く!