アメリカ人はバグを修正するための自己学習プログラムを作成しました

ビデオ: アメリカ人はバグを修正するための自己学習プログラムを作成しました

ビデオ: 【ゆっくり解説】ニコ生で起きた事故4選【ライブ配信】【ニコニコ生放送事故】 2022, 十一月
アメリカ人はバグを修正するための自己学習プログラムを作成しました
アメリカ人はバグを修正するための自己学習プログラムを作成しました
Anonim
Image
Image

PHP 5.3.3コードのバグ#53971の説明

マサチューセッツ工科大学の専門家が、他のプログラムのソースコードのエラーを完全に自動的に検索して修正できるProphetプログラムを開発しました。プログラムの作成者のレポートによると、プログラムは分析と修正に確率モデルを使用し、プラットフォームに依存しないコード修正の適用が可能です。 Prophetは、CodePhageの大幅に変更されたバージョンです。

Prophetは、他のソフトウェアのソースコードを操作するために、効果的なパッチに関するデータを使用します。そのソースコードと説明は、インターネット上のオープンソースで公開されています。エラーを修正するために、アルゴリズムはインターネットから取得して自動的に変更されたパッチを使用し、修正されたプログラムの残りのコードと自分自身を追加した修正されたコードの相互作用を分析できます。

開発者によると、他の多くのコード修正プログラムとは異なり、Prophetは、数百行ではなく数千行から数万行で構成されるソフトウェアのソースコードを処理できます。同時に、新しいアルゴリズムは自己学習が可能です。修正するソフトウェアのパッチを選択するとき、Prophetはさまざまなオプションから最も正しいコードを選択でき、選択には以前の修正の経験が使用されます。

アルゴリズムに基づいて、開発者は、すべてのプログラムは、プログラムが記述されている言語や対象のプラットフォームに関係なく、コードの正しいセクションにセマンティックレベルで存在する特定の普遍的な正しさの兆候があるという仮説を立てました。 。預言者は、調査されたパッチのそのような正確性属性のマップをコンパイルし、それを分析されたソフトウェアコードに転送することができます。

Prophetプログラムのソースコードを操作する場合、静的および動的なコード分析を使用します。これにより、正しくない可能性のある機能していない領域を特定できるだけでなく、エラーを高精度で特定できます。動的分析は、検出されたパッチを選択して変更し、それらをプログラムコードに適用するためにも使用されます。さらに、Code Phageと同様に、Prophetアルゴリズムは、潜在的に危険なセクションを「マーク」することができます。エラーで実行された場合、修正されたプログラムは単に閉じます。

開発者は、8つのオープンソースプログラムの69の既知のバグについてProphetをテストしました。アルゴリズムの結果は、他のそのようなプログラム(SPR、Kali、GenProg、およびAE)と比較されました。テストされたすべてのアルゴリズムは、ソースコードを分析してパッチを適用するために12時間与えられました。この期間中に、預言者は69の欠陥に対して19のパッチを見つけることができ、そのうち18が正しいことが判明しました。さらに、19個の修正のうち15個が、最初の試行でアルゴリズムによって選択されました。

次に、SPRは12時間で19個のうち16個の正しいパッチしか見つけることができず、最初の試行で11個の正しいパッチしか見つかりませんでした。 Kali、GenProg、およびAEは、それぞれ2つ、1つ、および2つの正しい修正を見つけることができました。

トピックによって人気があります

人気の投稿