@article{oai:naist.repo.nii.ac.jp:00004153, author = {Okada, Joji and Ishio, Takashi and Sakata, Yuji and Inoue, Katsuro}, issue = {6}, journal = {情報処理学会論文誌}, month = {Jun}, note = {レガシーなメインフレームシステムには,拡張子が存在せずプログラミング言語が不明なソースコードファイルが多数存在する.レガシーシステムを分析する際には各ソースコードファイルのプログラミング言語を判定する必要があるが,これを手作業で行うと多大な労力が必要となってしまう.本研究ではプログラミング言語の判定作業を支援するために,手作業で判定すべきファイルの代表をクラスタリングによって選出する手法を提案する.正確な判定を支援するため,提案手法はパターンマッチによる自動判定と,手作業での判定結果を用いた解析による判定誤りの補正をクラスタリングに組み合わせて用いる.提案手法の評価として,人手で正解のプログラミング言語を付与した2つの実際のレガシーシステムのファイル集合に対して本手法を適用した.その結果,提案手法は19万ファイルのうち,99.49%のファイルを正しく分類できることを確認した.また,これらのファイルに対する人手での判定は3.3人月の工数が必要だったが,提案手法は8時間の計算時間と,人手による15分の確認だけで判定を完了した., Legacy mainframe systems involve many source code files without file extensions. Their programming languages are undocumented. Therefore, their respective programming languages are not easily judged by hand. Although detecting a programming language for each file is necessary for various program analysis tasks, it is time consuming to manually analyze a large amount of files. In this research, we propose a method to support the process of programming language detection employing a clustering technique to select a small number of representatives for manual detection of programming languages. To improve accuracy, our method combines pattern matching and a static analysis using a result of manual detection. In the experiment, we applied our method to two actual legacy systems whose source code files have been manually analyzed. As a result, our method correctly classified 99.49% of the 190,000 files. While a manual detection of programming languages for the systems required 3.3 man-months, our method completed the analysis in eight hours for computation and fifteen minutes for manual checks of programming languages.}, pages = {1405--1414}, title = {AutoSort:レガシーシステム分析のためのプログラミング言語の判定支援手法}, volume = {59}, year = {2018} }