言語モデルによるソースコードの「自然さ」を利用した自動生成ファイルの特定  [in Japanese] Identification of Auto-generated Files Using Naturalness of Source Code by Language Model  [in Japanese]

Access this Article

Search this Article

Abstract

ソースコードの解析において,解析対象のソースファイルの中には自動生成ファイルが含まれていることがある.自動生成ファイルの存在が解析に悪影響を及ぼす場合があるため,多くの場合自動生成ファイルは除外して解析する必要がある.自動生成ファイルを除外する方法として,ソースコードが自動生成ファイルであるかを目視で判定するという方法がある.しかしこの方法は時間的コストが大きくなってしまうといった問題がある.他にも自動生成ファイル内に存在する特有のコメント文を文字列検索することにより特定するという方法があるが,この方法に関しても,自動生成ファイル特有のコメント文が消された場合に,自動生成ファイルを自動的に特定できないといった問題がある.そこで本研究では,自動生成コードとしての「自然さ」と人が作成したコードとしての「自然さ」を比較することで任意の自動生成ファイルを自動的に特定する手法を提案する.コードの自然さ,すなわち,自動生成あるいは人が生成したコードとしてもっともらしい度合いは,確率的言語モデルであるN-gram言語モデルによって数値化する.この提案手法を評価するために,4つの自動生成プログラムから生成された自動生成ファイル群を対象に実験を行った.その結果,高い精度で自動生成ファイルを特定できた.

In source code analysis, target source files include auto-generated files in some cases. However, auto-generated file may adversely affect the source code analysis, and so it is often necessary to exclude the auto-generated files before analyzing. A way of excluding auto-generated files is visually determining whether each source file is an auto-generated file or not, but it takes too much time to see source files manually. Another way is searching special comments which are included in the auto-generated file, An issue of the way is when such special comments have deleted for some reasons, the file cannot be identified automatically. Therefore, in this technique, we propose a way to automatically identify auto-generated files by comparing "naturalness" as an auto-generated file and as a handwritten file. The naturalness of the files, that is, the degree that is likely to be auto-generated or handwritten code, is quantified by a N-gram language model which is a probabilistic language model. In order to evaluate the proposed techinique, experiments were conducted on datasets which are groups of generated files from four auto-generated Java files, handwritten Java files, JavaScript files translated from TypeScript files and JavaScript files. As a result, we were able to identify auto-generated files with very high accuracy.

Journal

  • 情報処理学会論文誌

    情報処理学会論文誌 60(2), 642-650, 2019-02-15

Codes

  • NII Article ID (NAID)
    170000150140
  • NII NACSIS-CAT ID (NCID)
    AN00116647
  • Text Lang
    JPN
  • Article Type
    journal article
  • ISSN
    1882-7764
  • Data Source
    IPSJ 
Page Top