抄録/ポイント:
抄録/ポイント
文献の概要を数百字程度の日本語でまとめたものです。
部分表示の続きは、JDreamⅢ(有料)でご覧頂けます。
J-GLOBALでは書誌(タイトル、著者名等)登載から半年以上経過後に表示されますが、医療系文献の場合はMyJ-GLOBALでのログインが必要です。
プログラマはコーディング規約や規則に従わねばならない。ライブラリには,API呼び出しの手順などに特有の規則を定めているものがあり,規則に従わないプログラムは正しく動作しない。また,ソフトウェアの脆弱性の原因となる危険なコードパタンや,それを避けるためのコーディング規約がよく知られている。このような規則や規約に違反したコードを発見するために,多くの検出ツールが開発されている。しかし,規則や規約ごとに特化した検出ツールを作成するのは労力がかかる。検出モジュールだけ分離して開発できる機構を提供しているツールも存在するが,その多くは(1)検査対象コードの内部表現が専用のデータ構造で表現されており,可視化ツールを使わなければ構造を確認できない,(2)内部表現にはAPI経由でアクセスしなければならない,(3)検出モジュールは手続的なプログラムとして記述する必要があるという特徴があり,その開発は容易ではない。そこで,我々は,違反しているコードの構造を木パタンで表現し,ソースコード中からパタンにマッチする箇所を探すことで違反を検出するツールを提案する。このツールは,Clangコンパイラをもとに作った抽象構文木(AST)を生成する部分と,Clojureで記述された木パタンマッチ部で構成されている。規則違反パタンの作成者は,規則違反を含むソースコードのASTを見ながら規則違反パタンを記述できる。さらに,検査対象のASTと規則違反のパタンのどちらも同じ形式のS式で表現されており,ASTから一部を切り出して修正することで規則違反パタンを容易に作成することもできる。さらに,提案ツールの有用性を確認するため,実際にセキュアコーディング違反とJNIコーディング規約違反のうちいくつかのパタンの記述を行った。(著者抄録)