研究のねらい 研 究 内 容 研究のポイント 図3.構文解析木の各ノードの追跡(signal.c)図2.Emacsエディタの進化系統樹 図1.木差分計算の仕組み ソースコードに限らず、多くの人工データは木構造で表 現されます。本研究では、木構造の間の差異を高速に計算 するアルゴリズムを開発しました(図1)。「差異が大」= 「類似度が小」ととらえ、分子系統学のアルゴリズムを適 用すれば、図2にあるようにソフトウェアの進化の過程を 正確に再現できます。また、木差分計算では、すべてのノ ードの間の対応関係を列挙するため(図3)、コードのイ ンポートやコピーといった操作も同定可能です。こうした 類似コード上で相異なる修正を分析して、Linux2.6カー ネルコードの不具合を発見しました。 大規模なソフトウェアの開発では、ソースコードがどのように開発・修正・管理されてきたかを把握することが重要