DeepCoder能從其他程序中“偷”代碼,然后開始寫自己的程序。不過,人類程序員目前還不用擔心自己的飯碗會被它給搶走。因為DeepCoder的研究團隊稱,他們開發(fā)這個系統(tǒng)是為了讓沒有任何編碼知識的人更容易地寫程序。

據(jù)研究團隊透露,DeepCoder使用了深度學習技術來模擬大腦的神經網(wǎng)絡,借此它可以處理大量的數(shù)據(jù),進行評估做出決策。
具體做法是,研究人員給定DeepCoder輸入和輸出列表。這樣DeepCoder可以確定哪些代碼段將帶來什么樣的所需結果。DeepCoder開發(fā)者之一馬克·布羅克施密特(Marc Brockschmidt)表示,最終,這種方法有望讓非編程人員只要僅僅描述某個程序的想法,就可以讓系統(tǒng)自行編寫程序。
人類程序員已經非常熟悉如何借鑒其他公開程序的方法,但像DeepCoder這樣的系統(tǒng)可以更快地搜索,并比此前的人工智能系統(tǒng)思考更深。它甚至還可以用人類還沒有想到的方式組合代碼。
“有了這個程序后,突然之間,人們可以擁有更多的生產力了。真正有望大幅縮短開發(fā)代碼所需要的精力。”麻省理工學院教授阿曼多·索拉爾·勒扎瑪(Armando Solar-Lezama)在接受《新科學家》采訪時說。
與人類程序員一行行運行代碼,對整個程序進行試錯不同,DeepCoder可以提前預測哪些代碼是有用的,哪些是錯誤的。另外,它能從各種選擇中學習,讓自己隨著時間的增加變得更聰明。
DeepCoder的技術已經得到了應用。在2015年,麻省理工學院的研究人員開發(fā)出了一個程序,它可以把有故障的代碼行換成其他程序中切實可用的代碼,自動修復軟件缺陷。布羅克施密特表示,未來版本會讓構建常規(guī)程序變得容易,比如從網(wǎng)站獲取信息,或者自動對Facebook照片進行分類,到時候,這些都不需要人類程序員動手。
不過,廣大程序員們暫時還可以放寬心,不必擔心他們的工作會被人工智能取代。索拉爾·勒扎瑪認為,DeepCoder只是讓編程工作中最枯燥乏味的部分自動化,程序員能夠將時間專門花在處理比較復雜的工作上。
最后需要指出的是,DeepCoder目前只能夠解決涉及大約五行代碼的編程挑戰(zhàn)。“一下子生成一大段代碼很難,可能不切實際。但是真正龐大的代碼卻可以通過組合大量的小段代碼編寫而成。”索拉爾·勒扎瑪說。