抄録/ポイント:
抄録/ポイント
文献の概要を数百字程度の日本語でまとめたものです。
部分表示の続きは、JDreamⅢ(有料)でご覧頂けます。
J-GLOBALでは書誌(タイトル、著者名等)登載から半年以上経過後に表示されますが、医療系文献の場合はMyJ-GLOBALでのログインが必要です。
Golang(短期のGoとしても知られる)は,分散システムにおける同時性プログラムの構築に普及している。ユニークな特徴として,Goは軽量Goroutineを使用して,ユーザ空間における高度に並列性をサポートする。さらに,Goは,スレッド間の明示的な通信を可能にするためのチャネルを利用する。しかし,最近の研究では,同時性バグがGoアプリケーションでは稀ではないことを示した。実際のGoアプリケーションにおけるこれらの同時性バグの指摘は,重要で挑戦的である。既存の手法は,2つの制限を持つコンパイラ支援静的または動的解析に基づいている。第1に,既存の手法は,ソースコードのアベイラビリティと再コンパイルを必要とし,これは,アプリケーションと外部ライブラリの両方に利用できるソースコードのない生産環境よりむしろ試験にうまく働く。第2に,既存の手法は,Goと他の言語との混合プログラムではなく,純粋なGoコードベースのみに働く。これらの限界に取り組むために,動的バイナリ分析によるGoアプリケーションにおける同時性バグを同定するための第一ツールであるBinGoを開発した。BinGoはGo意味論と二値実行を相関させ,新しいバグ検出アルゴリズムを採用した。BinGoは,Goエコシステムにおけるソースコード,コンパイラ,およびランタイムの修正なしに,生産環境における展開に準備できるエンドツールである。著者らの実験は,BinGoが偽陽性のない同時性バグの高度なカバレッジを有することを示した。中程度のオーバヘッドを持つ実際のアプリケーションにおける同時性バグを同定するために,BinGoを使用できる。【JST・京大機械翻訳】