天天看點

PLINY:一個讓計算機自己程式設計的項目

PLINY:一個讓計算機自己程式設計的項目

現在當你在google的搜尋框中輸入文字時,它能自動聯想推 送出你需要的内容。比如說,輸入“wi”,詞條“wikipedia”就自動聯想出來;輸入“bra”,google也能猜到你想輸入“brad pitt”。雖然說google自動填寫的搜尋内容有時候與使用者本人的想法可能大相徑庭,但是更多的時候,它的确能準确的猜出你想要搜尋什麼,為備援的打 字過程提供了便利。

現在一個政府資助的團隊正在研究類似的項目,讓全世界的程式員們在寫代碼時,計算機能夠自動聯想。其本質就是,計算機能夠在程式員們輸入代碼前,就猜出他們想敲的内容。

本周,賴斯大學表示美國國防部進階研究計劃局darpa已經投資1100萬美金給程式設計自動填寫項目,用古羅馬作家的名字命名代号為pliny。賴斯 大學的計算機科學學院院長、pliny項目的主要研究人vivek sarkar說,“google的文本搜尋預測隻是一個例子,接下來人們會用相似的方法解決更多的問題。”

項目的參與人員來自各個機構和研究院,包括賴斯大學、德州大學奧斯汀分校、威斯康星大學以及專門制作開發者工具的grammatech公司。 pliny項目将會索引網際網路上海量的開源代碼,來搭建代碼預測引擎,理論上說,pliny也能夠做到定位bug和安全漏洞。如果項目得以實作,那些緻力 于研發複雜軟體程式的高科技公司,再也不用擔心招聘不到足夠人手的優秀程式員了。

pliny并不是第一個試圖解決代碼自動填寫的項目,微軟在去年釋出了bing developer assistant(必應開發者助手)。sarkar表示pliny是一項更重大的項目,“其他大多數的項目做到的隻能是機遇代碼結構的簡單的文本分析。”

sarkar和他的團隊嘗試制作一款軟體,即便是運用不同的程式設計語言,軟體不僅能夠做到分析文本,同樣也能讀取代碼表達的意思。sarkar希望pliny今後可以自動填寫大段長串代碼,順便檢查程式員的語言錯誤和安全漏洞。

對于pliny項目而言,最困難的地方就是如何做到合理正确的預測代碼。如果你曾經用過微軟office軟體中的曲别針助手clippy先生,或者 自動更新部落格助手,你就能體會到讓計算機自動填寫正确的答案是多麼多麼困難的事情。google能做到的也僅僅是依據成千上萬網民們的“搜尋熱詞”,水到 渠成的預測出你可能會輸入的搜尋内容。二代碼預測可不是這樣,一般來說最廣泛使用的代碼段并不是最好的解決方案。

sarkar承認解決自動填寫的合理正确性是pliny項目中最棘手的挑戰,但是他認為他們團隊是該項目的不二之選。團隊成員都有着在能源部門和醫 療研究機構從事大資料分析的經驗。sarkar說賴斯大學多年來一直希望把機器學習的算法應用到軟體開發的領域,darpa給大家提供了這次珍貴的機會。

pliny的項目從研究網際網路中的開源代碼開始,這些代碼通常來自提供主機服務的github 和sourceforge,以及其他的開源項目例如apache foundation。此外pliny希望代碼自動填寫項目能夠開發出企業版本,用于索引大公司和企業的軟體程式。

pliny同樣建立了資料庫系統用來存儲和分析代碼,這為建立優化代碼索引提供了多種的方法,提高了代碼的品質。程式能夠自動識别“特殊代碼”,并且給予優先級别。

雖然說pliny項目的成果會看上去和google的聯想搜尋很相似,但是它将會實用的多。

繼續閱讀