05/12/12 11:29:28
>>652
* interactions between compilers and architectures
コンパイラとアーキテクチャの相互作用
(キャッシュやパイプラインや特定の命令の有無などハードウェアの構成を知ったり、
もっと意欲的には再構成可能ハードウェアを構成したりとかも入るのかな?)
* program analysis
プログラム解析
(まぁ最適化や書き換えなどのためにプログラムの性質をいろいろ調べる技術ですな。
目指す処理に必要でかつ調べやすい性質のアイディアと
そうやって提唱された性質をプログラムから取り出すアルゴリズムがセット。
最適化のためのループの分類やら、ある変数の定数性を調べたり、
ポインタがどのオブジェクトを指してるか調べたり。
あとは型検査なんかもこのジャンル。
末尾再帰かどうかを判定するなんてのは古典ですな。
最近では型と絡めて安全性とかも話題。多分現在コンパイラ研究で理論面の主流。)
* software development tools
ソフトウェア開発ツール
(例えば開発環境とかデバッガとかリファクタリング・ツールとかテスト・ツールとか
プロファイラとかソースコード管理とかドキュメントやUML図の作成ツールとか
GUIウィザードの類とか。)