人們常說:“良藥苦口利于病。”人生病以后必須要吃藥、打針甚至動手術(shù),總得吃點(diǎn)苦頭,但是在電腦世界里,一種新系統(tǒng)給電腦治病的方法卻別具一格,它靠“愚弄”電腦來發(fā)現(xiàn)和解決問題。
因特網(wǎng)近20年來幾乎每年都擴(kuò)大一倍,怎樣在如此巨大的范圍內(nèi)檢測網(wǎng)絡(luò)軟件是一大難題。傳統(tǒng)的方法是通過電腦模擬,就像初級飛行員通過模型駕駛艙學(xué)習(xí)飛機(jī)駕駛技術(shù)。但是用模擬法檢測必須重新制作一個(gè)類似的軟件,最初的軟件不能被測試,那樣就產(chǎn)生了兩個(gè)不同的版本,而且沒有正規(guī)的程序可以確定檢測的真實(shí)結(jié)果。
另一種方法是比較法,或者說直接檢測最初的軟件。用這種方法,程序員可以只編一次軟件,不需要為了測試而重新編寫。但是比較法的控制程度非常低。
美國維吉尼亞計(jì)算機(jī)科學(xué)技術(shù)部門的斯里尼迪?瓦拉達(dá)拉想到:“為什么不制造一個(gè)虛擬世界,讓軟件誤以為是在真實(shí)世界中呢?”經(jīng)過研究,他提出一種新的電腦技術(shù),由程序員使用密碼把一種規(guī)劃的語言轉(zhuǎn)化成類似的規(guī)劃形式,產(chǎn)生虛擬世界。被捉弄的軟件會以為這是真實(shí)的世界,在里面運(yùn)行,由此找到所存在的問題。這種新技術(shù)被稱做“編織法”。
“編織法”能夠彌補(bǔ)模擬法和比較法的不足,“你根本無法檢測200萬臺電腦上的網(wǎng)絡(luò)軟件,甚至檢測5000臺都很困難。”他說,“但是我們能產(chǎn)生幾十萬個(gè)虛擬世界,使軟件以為它們正在大規(guī)模網(wǎng)絡(luò)里運(yùn)行。這一技術(shù)將領(lǐng)導(dǎo)虛擬因特網(wǎng)的創(chuàng)造。”
“編織法”能做所有已存在的系統(tǒng)所能做的事,經(jīng)過反復(fù)的分析,它能識別任何一種語言。同時(shí),“編織法”也考慮到了錯(cuò)誤。瓦拉達(dá)拉說:“在生活中,我們每做一件事都要根據(jù)自己的知識和經(jīng)驗(yàn)。如果我們知道犯了錯(cuò)并想改正的話,我們必須記得當(dāng)時(shí)的經(jīng)過。”在電腦上,程序也必須記得引導(dǎo)它犯錯(cuò)誤的每一個(gè)步驟。“嘗試挽救所有的數(shù)據(jù)很困難,”瓦拉達(dá)拉說,“我們正在嘗試制造網(wǎng)絡(luò)幻景,這樣可以在不知道犯錯(cuò)步驟的情況下找到錯(cuò)誤的根源。‘編織法’可以自動完成這些。它會記錄和挽救數(shù)據(jù),告訴我們哪些操作需要及時(shí)改正。”這種系統(tǒng)允許對語言和密碼進(jìn)行編織,以便快速對沒有申請支持的數(shù)據(jù)進(jìn)行自動機(jī)械檢查和恢復(fù)。對于瓦拉達(dá)拉的提議,美國國家科學(xué)基礎(chǔ)事業(yè)給予了40萬美元的獎(jiǎng)勵(lì)。他將繼續(xù)他的研究,增加以模擬為基礎(chǔ)的課題,用來幫助世界各國網(wǎng)絡(luò)課程的學(xué)生,以免他們花費(fèi)過多的時(shí)間和精力學(xué)習(xí)復(fù)雜的虛擬網(wǎng)絡(luò)功課。(摘自《科技日報(bào)》)