AI從其他程序偷代碼,來編寫自己的程序
人類快走開,放著讓我來。機器學習系統已經學會了自己編程!
由微軟和劍橋大學研發的系統DeepCoder已經能夠解決類似編程比賽中出現的基礎編程問題。這樣一來就方便多了,人類無需熟知代碼也可以完成簡單的程序。
麻省理工學院的Armando Solar-Lezama(並非開發者)說道:「一瞬間,人們的生產效率會直線上升,他們可以搭建出以前無法搭建的系統。」
「最終,依靠這種技術,非編程人員只要向程序描述一個想法然後讓系統自己去搭建」,英國劍橋大學微軟研究院DeepCoder開發者之一Marc Brockschmidt說道。
DeepCoder用到的技術叫做程序合成:從現存的軟體那兒偷學代碼然後把它們拼接成新代碼——跟程序員做的事兒一樣。給每段代碼一列輸入和輸出值,DeepCoder就會懂得需要哪些代碼片段來獲得指定的結果。
讓人工智慧在這上面自由發揮的優勢在於它比人類程序員的程序搜索範圍更廣泛更徹底,所以最終AI有可能拼接出人類根本沒設想過的源代碼。此外,DeepCoder還利用機器學習窮盡源代碼資料庫,並根據潛在的實用價值將代碼片段進行排序。
這些改良使系統比它的前輩們動作快多了。DeepCoder能在幾分之一秒內編寫出能夠正常運行的程序,而舊版系統要花上幾分鐘去測試怎麼組合不同的代碼片段才能工作。因為DeepCoder在執行任務中會學習什麼樣的源代碼組合能工作以及什麼樣的不能工作,所以每次著手解決一個新問題它就會進步一點點。
這種新科技將會有廣泛的應用。2015年,MIT研究員開發了一種能夠自動修復軟體漏洞的程序,它通過複製其他程序中正確的代碼來替換原程序中的錯誤代碼。Brockschmidt說,未來的DeepCoder會使編寫例行程序非常簡單,比如網頁爬蟲、自動分類Facebook照片等等,人類程序員連手指都不用抬一下。
Solar-Lezama說:「這種科技為自動化帶來的潛力在於大大減少了開發代碼所需的時間精力。」
但他不覺得這種科技會讓程序員失業。他說,通過用程序合成技術來自動化那些編程工作中最枯燥乏味的部分,程序員可以把時間花在更複雜的任務上。
目前,DeepCoder還只能解決5行代碼左右的編程任務。但只要選對了編程語言,有時候短短几行代碼就能解決相當複雜的問題。
Solar-Lezama說:「一次性生成很長的一段代碼很難,基本不現實。但是長代碼段都是由小代碼片段接起來的。」
※機器學習改變互聯網,物理學家將重新定義矽谷
※量子磁共振顯微鏡首次實現直接觀測人類生化過程
TAG:DeepTech深科技 |
※框架將取代編程語言,成為程序編寫的必然選擇?
※編寫自己的代碼庫
※馬斯克說人類是程序員編寫好的程序,網友向程序員跪了
※兒童編程:如何用Scratch編寫你的第一個程序
※微軟:無論量子計算機是否存在,我們已為其編寫了一套編碼語言
※程序員你為什麼這麼累續:編碼習慣-函數編寫建議
※日本玩家編寫程序:用VR眼鏡和初音未來約會
※編寫整潔的 PHP 代碼
※C程序解析:用C語言編寫你的第一個自定義函數
※編寫基於TCP的應用程序
※他編寫的軟體程序在火星運行,現在要從百度離職
※學語言不如學框架,框架將成為程序編寫的必然選擇?
※OMG|主編寫了一本戒掉爆款的懺悔史,讀完我發現手剁早了
※編寫高質量代碼,從「心」做起!
※如何快速編寫增刪改程序?C/C 鏈表操作,基礎數據結構的使用
※SQL 教程:如何編寫更佳的查詢
※使用Python編寫程序求解數獨遊戲答案
※編寫自己的JEB2插件
※編寫童話故事作文