ソフトウエアのバグがないことを沮湯してくれるツ〖ルをMonoidicsが橙任へ
染瞥攣ビジネスにソフトウエアの孺唯が光まってくるにつれ、ソフトウエアプログラムにつきもののバグが片乃の鹼になる。これまでバグを鑼跡するツ〖ルは斧つけて近殿するだけで、戮にも勵んでいる材墻拉はあった。もし、バグがないことを沮湯してくれたら、SoCの肋紛箕粗がぐんと沒くなる。この檀を悸附してくれるソフトウエアツ〖ルが舍第の名しを斧せている。
毖柜ロンドンを凋爬として泣勢にもオフィスを彌く、モノイディクス∈Monoidics∷家は、2鉗漣にロンドン絡池のピ〖タ〖ˇオ〖ハン兜鑒と勢カ〖ネギ〖メロン絡池のジョン帴C帴レイノルズ兜鑒が慮ち惟てたプログラムの賴しさを沮湯する妄俠を網脫して、それを瀾墑步し睛墑嘆≈Infer∽と嘆燒けた。企客の兜鑒は海でもモノイディクス家の杠啼でもある。
票家泣塑毀家ディレクタであるRichard Rettig會によると、このツ〖ル≈Infer∽は坤の面にあるC/C++で今いたプログラムならどれでも努脫できるが、票家の晾う輝眷は寥み哈みソフトの尸填だという。寥み哈み廢の絡憚滔なSoCやFPGAのプログラム倡券ではC咐胳を蝗う毋が籠えているからだ。
≈Infer∽のメリットは、コストを娃えたままバグのないソフトウエアプログラムを沮湯できる爬である。これまでバグを近殿する眷圭は、ソフトウエア鏈攣のプログラムをつぶさに拇べると箕粗(コスト)がかかってしまうが、拇漢灤據のプログラム嬸尸を負らすと箕粗は沒くなるが、カバレ〖ジ∈討灣拉∷が布がってしまいプログラムの墑劑が皖ちてしまう。できるだけ沒箕粗でバグのないことが沮湯できればありがたい。≈Infer∽は沒箕粗でバグを拇べバグがなくなったことを沮湯するソフトウエアである。ただし、プロシ〖ジャ∈プログラムの面で、帆り手し判眷する借妄を乖うために辦息の炭吾を辦つの緘界(procedure∷としてまとめたもの∷レベルでのコ〖ドが奧鏈であることを沮湯する條であり、プロシ〖ジャレベルではないコ〖ドに簇しては澀ずしも奧鏈という條ではない。
≈Infer∽は3つのソフトウエア嬸墑からなる。券斧しにくいバグを陋えるBug Catchingと、風促のないことを沮湯するFormal Verification、ソフトウエアの墑劑をビジュアルに山績するInferクオリティチャ〖ト、である。Bug Catchはソ〖スコ〖ドの茶燙懼にエラ〖があるとそれをハイライトで山績し、Formal Verificationはプロシ〖ジャごとに沮湯ダイアグラムを券乖する。Inferクオリティチャ〖トでは、餞賴の庭黎界疤と、カバ〖唯を山績しプログラムの墑劑をビジュアル步する。
この面で、Formal Verificationツ〖ルと鈣ばれるものは驕丸もあった。しかし、これまでのツ〖ルではプログラムコ〖ドをチェックし、バグのある疥に庭黎刨を燒けそれぞれ木していくという侯度が面看だったという。≈Infer∽のFormal Verificationツ〖ルは、バグがないことを眶池弄に沮湯するものであり、プログラムの墑劑をチェックする箕粗を沒教、すなわち浮漢コストを布げることができる。
哭1 プログラムの墑劑を哭で山績 叫諾¨Monoidics
Inferクオリティチャ〖トは、ソフトウエアの墑劑をCall Rankという回篩と、沮湯の(プル〖フ)カバレ〖ジという回篩を蝗って山すもの(哭1)。玻即のプル〖フカバレ〖ジは0%から100%まであるが、僥即のCall Rankはプロシ〖ジャが鈣ばれる充圭で、光い數ほどよく鈣ばれていることを績す。風促のある嬸尸を樂、荇、搏でそれぞれ驢い、面くらい、警ない、を山している。風促がないコ〖ドは渦で山す。哭1の寶婁ほど奧鏈であり、焊婁に風促を崔む材墻拉が驢いことを山している。
≈Infer∽はコ〖ドとメモリとの簇犯をきっちり瘦沮することが悸附のカギだという。斧つけにくいバグの面でもメモリリ〖クと鈣ばれる、メモリ撾拌が靳」に負ってしまう附據に動い。メモリリ〖クはOSのメモリ瓷妄數恕に啼瑪があったり、アプリケ〖ションにバグが荒っていたりすると彈きやすい、と咐われている。
≈Infer∽の銅網な爬は、サ〖ドパ〖ティのコ〖ドに灤しても墑劑をチェックできることだ(哭2)。沸貉緩度臼の寥哈みソフトウエア緩度悸輪拇漢鼠桂今2010によると、坤の面にある鏈てのソフトウエアの士堆弄なプログラム乖眶は99.8它乖であり、そのうち鏈くゼロから倡券するコ〖ドは45.4它乖である。荒りの54.4它乖はソフトの浩網脫ということになる。となるとサ〖ドパ〖ティのソフトを萎脫することがごく辦忍弄になってきていることになる。ただし、≈サ〖ドパ〖ティのコ〖ドには墑劑答潔がない。その墑劑答潔は戮のコ〖ドとの高垂拉もない∽とRichard Rettig會は咐う。また、サ〖ドパ〖ティのコ〖ドがたとえ賴しくても、寥み圭わせると風促となるケ〖スもあるという。
哭2 サ〖ドパ〖ティのソフトのチェックにも銅跟 叫諾¨Monoidics
そこで、サ〖ドパ〖ティも崔めたソフトウエアの墑劑をチェックするために、ドライバからライブラリ、ミドルウエア、アプリケ〖ションの鏈てに畔ってチェックすることが澀妥になってくる。それもできるだけ倡券の懼萎供鎳で乖い、バグを瀾墑奪い供鎳まで積っていかないことが腳妥になる。潑に、Androidデバイスに蝗われるソフトウエアはサ〖ドパ〖ティだらけなので浩網脫のチェックは稍材風である。
このソフトの掐緘數恕として、PCやサ〖バ〖にインスト〖ルするパッケ〖ジソフトの戮に、クラウドを網脫する數恕も路えている。≈Infer∽はC/C++をサポ〖トしているが、2012鉗にはJavaプログラムにも灤炳する徒年だ。