不久前,使用Microsoft Word的人會通過明確告訴該軟件運(yùn)行“拼寫檢查”來檢查拼寫錯(cuò)誤。這項(xiàng)檢查花了幾秒鐘的時(shí)間,然后用戶可以進(jìn)入并解決他們的錯(cuò)字。如今,我撰寫此故事時(shí),拼寫檢查會隨著用戶的編寫自動(dòng)運(yùn)行。
Microsoft Word及其對Spell Check的持續(xù)運(yùn)行是“并發(fā)”編程的基本示例,這是一種計(jì)算形式,其中可執(zhí)行文件與其他程序和計(jì)算同時(shí)運(yùn)行。如今,大多數(shù)程序都是并發(fā)程序,從您的操作系統(tǒng)到很多應(yīng)用程序,從文字處理到Web瀏覽,人們每天都在使用它們。
CyLab的電氣與計(jì)算機(jī)工程與計(jì)算機(jī)科學(xué)系副教授Bryan Parno表示:“當(dāng)您同時(shí)發(fā)生多件事情時(shí),您需要某種協(xié)調(diào)方式,以確保彼此之間不會互相踩踏。”部門。“從歷史上看,這是一個(gè)非常麻煩的過程。”
Parno和一組研究人員最近發(fā)布了一種用于高性能并發(fā)程序的新編碼語言和工具,可確保程序可證明是正確的-即,該代碼在數(shù)學(xué)上被證明可以正確計(jì)算。在今年的編程語言設(shè)計(jì)與實(shí)現(xiàn)會議上介紹了名為Armada的語言和工具,該論文獲得了杰出論文獎(jiǎng)。
“ Armada的新穎之處在于它的設(shè)計(jì)非常靈活,因此您可以按照自己的方式編寫代碼,從而使其能夠盡快運(yùn)行,” Parno說。“但您仍將獲得有力的保證,它將做正確的事情,并且不會弄亂后端的任何事情。”
帕諾(Parno)將并發(fā)程序的復(fù)雜性及其對錯(cuò)誤的敏感性比作拍賣。通常,一個(gè)拍賣師會收到很多人的出價(jià)。如此之多的人和一位拍賣師,可能需要很長時(shí)間才能達(dá)到最高出價(jià)。如果將每個(gè)人分成十個(gè)房間,每個(gè)房間都有自己的拍賣師,那將會加快速度,但拍賣師很難保持協(xié)調(diào)。會有很多錯(cuò)誤的余地。
帕爾諾說:“所有拍賣商都必須有一種相互交流的方式,同時(shí)努力爭取所有房間的最高出價(jià)。” “這可能會變得非常復(fù)雜,這就是為什么您通常不會看到以這種方式進(jìn)行拍賣的原因。”
帕爾諾認(rèn)為,艦隊(duì)將使編寫并發(fā)程序的任何人受益,這些并發(fā)程序涵蓋了廣泛的應(yīng)用程序。
“從薪資系統(tǒng)到醫(yī)院記錄再到任何形式的電子商務(wù),它們都由數(shù)據(jù)庫支持,而數(shù)據(jù)庫始終將由并發(fā)軟件支持,” Parno說。“除了簡單的程序,如今,幾乎所有內(nèi)容都具有某種并發(fā)性。”