機器編程:軟體開發領域新動向

2020-12-25 中國網科學頻道

隨著人工智慧的蓬勃發展,機器的智能化程度越來越高,在很多領域,基於大量樣本數據的自我學習,計算機在某一功能領域能夠實現自我完善,通過持續的大數據量學習,執行功能的能力會得到持續提升,究其本質,實質上是一些重複性工作的持續優化,機器學習本身就是學習這些重複性工作的數據(即樣本數據),然後優化工作的過程。

在軟體開發領域,如何通過引入人工智慧提升開發效率呢?首先思考機器學習的方式,由於編程工作本身,沒有可行的方案提供一致性的編程「數據樣本」,且不同的程式設計師實現的算法和過程有天壤之別,因此通過機器學習的方式讓計算機自動編程將變得不可實現。

基於深度抽象的人工智慧,讓計算機理解設計模型並轉化為代碼,這個過程被稱為機器編程。機器編程是表徵軟體開發中從模型向高級語言代碼轉換的過程,全部交由計算機完成,此構想的另一背景是客戶化項目需要人工編碼的工作很多,尤其較為複雜的大型項目,對項目進度、項目管理形成挑戰,且要求開發出的項目能夠不依賴於開發平臺而獨立運行,同時項目代碼交付客戶後,客戶的編程人員能夠使用通用的高級程式語言例如Java,C#等進行後續獨立升級開發。基於此背景與構想,2014年安鳴軟體創始人趙晨創立了上海安鳴軟體科技有限公司,將此概念和構想付諸實驗與實踐,經過六年研發,推出了ACB機器編程平臺,並發表機器編程論文並被知網收錄。系統將領域模型、交互模型、視圖模型、接口模型、流程模型、權限模型均進行了完整實現,項目能夠通過可視化模型完整生成基於高級程式語言的程序代碼,該系統開發的平臺級系統已應用於廣告行業的DSP、DMP、SSP、CRM、SEM等系統。

該系統機器編程技術的核心要素是機器理解模型並轉變為代碼,而非由人類程式設計師理解模型,並進行實現的過程,因此軟體系統的模型化就是機器編程的輸入,可執行代碼是機器編程的輸出。軟體系統就是模擬真實世界,真實世界的模擬實質上就是不同對象的交互,從面向對象角度,可以從不同層級對實體對象進行建模,因此,系統從幾個分層的模型角度對軟體系統進行全面的建模,系統的核心工作就是讓計算機理解這些模型並產生原始碼進行編程工作。

ACB與Outsystems,iVX,Salesforce,Mendix,Appian,Joget等低代碼快速開發平臺和技術的目的類似,其目的都是加速軟體開發,減短軟體開發過程中的迭代周期,提高開發效率和質量,降低開發成本,能夠將模型直接轉化為可運行應用程式。不同之處在於:機器編程將模型轉化為高級語言代碼,其轉換從編程結果和代碼角度審視,應和人工編碼並無不同,通過編譯這些高級語言代碼,進而執行軟體系統。Outsystems,iVX,Salesforce等低代碼快速開發平臺所採用技術開發完成之後的系統僅能運行在平臺自己架構之上,不是以普通的高級語言代碼方式作為軟體開發結果交付客戶,雖然目的同樣能夠加速軟體開發,但不是以模仿人類編程為目的,機器編程則是模仿人類編程過程,其產出高級語言代碼作為結果是其主要特徵,產出結果上看和人工編程並無不同,但編程效率卻大大提高。

相信在不久的將來,機器編程這種以深度抽象為基礎的人工智慧技術,在智能軟體吞噬世界的信息化數字浪潮中,在技術層面發揮其高效率智能化的特徵加速人類信息化數位化進程。

相關焦點

  • 手機遊戲開發的編程軟體
    手機遊戲開發,說白了,也是經過編程軟體不斷地敲代碼敲出來的,但是呢,大家對於這門行業一直保持著好奇又疑惑地心理。對於一直從事軟體編程的人來說,這確實小兒科,但也不僅僅是小兒科,有時也相當於一座小山一般。因為,這既是一次很艱難的任務也是一件很輕鬆地旅程。
  • 如果是為了掙錢,我應該選擇競爭性編程還是軟體開發
    根據Microsoft工程師Satendra Verma的說法,「儘管它可以提高您的技能,但優秀的軟體工程師所需要的遠遠超出競爭性編程所提供的。競爭性編程並不是成為一名優秀軟體工程師的必要條件。「但是如果我們談論另一面,那麼很多工程師也同意參加競爭性編程可以幫助他們抓住工作機會並成為軟體工程師。難道不是同一件事嗎?
  • 開發機器視覺的工具性軟體,「SIGAI」已落地物流場景中物體計數等...
    之前關注度最高的是安防監控領域,但由於項目定製屬性太強,加上海康威視等巨頭企業的存在,人工智慧企業在這一領域並沒有大的建樹。而機器視覺在工業領域的應用則集中在缺陷檢測、分揀、定位與抓取等問題上,通常垂直紮根於某一個行業。
  • 單片機編程軟體大佬:明確單片機編程軟體編寫單片機程序步驟
    單片機用什麼軟體編程?單片機開發中除必要的硬體外,同樣離不開軟體,我們寫的彙編語言源程序要變為CPU可以執行的機器碼有兩種方法,一種是手工彙編,另一種是機器彙編,目前已極少使用手工彙編的方法了。機器彙編是通過彙編軟體將源程序變為機器碼,用於MCS-51單片機的彙編軟體有早期的A51,隨著單片機開發技術的不斷發展,從普遍使用彙編語言到逐漸使用高級語言開發,單片機的開發軟體也在不斷發展,Keil軟體是目前最流行開發MCS-51系列單片機的軟體,這從近年來各仿真機廠商紛紛宣布全面支持Keil即可看出。
  • 從軟體開發到 AI 領域工程師:模型訓練篇
    軟體工程師的要求,我總體分為基礎編碼和系統架構兩方面,因此我對於軟體工程師的考察,特別是校招學生時,為了進一步考察他們的綜合能力,我每次都會自己準備面試題,這些題目包括了編程基本概念、算法編程題、作業系統、資料庫編程、開原始碼閱讀、垃圾回收機制、系統架構描述等。
  • 推薦10款編程工具:為多核開發保駕護航
    多核編程既是機遇也是挑戰,如何在這個行業大變革中把握方向、與時俱進,成為當務之急。怎麼在一個晶片上來順利處理多CPU內核編程成為了一件棘手的難題,這些多核處理器正在潛移默化地改變著開發人員傳統的編程習慣。  一旦您學會了用並行的方法來處理編程,任何問題就會迎刃而解。並行編程環境過去是很不方便的。
  • 自學編程5小時 如何靠遊戲開發軟體做出一款遊戲
    在我們的想像中,遊戲開發依舊是一個普通人無法觸及的領域。  最近幾年湧現出越來越多關於「單人開發的遊戲」,或者是「粉絲重製某某經典遊戲」的消息。如果你留意過的話,網站中關於"Unity 3D自學教程「此類的遊戲開發入門方面的廣告也越來越多。
  • 單片機程式語言的比較
    單片機又稱單片微控制器,它是把一個計算機系統,包括cpu、ram、rom、定時/計數器和多種i/o接口集成到一個晶片上。與彙編相比,有如下優點:  對單片機的指令系統不要求了解,僅要求對51的存儲器結構有初步了解,至於寄存器分配、不同存儲器的尋址及數據類型等細節均由編譯器管理。  程序有規範的結構,可分為不同的函數。這種方式可使程序結構化,將可變的選擇與特殊操作組合在一起,改善了程序的可讀性。  編程及程序調試時間顯著縮短,從而提高效率。
  • 想開發程序進入編程世界,下面的東西你不知道,你不過是紙上談兵
    你的目標是有一天成為一名軟體工程師嗎?你還想開發一個全世界的人都喜歡使用的行動應用程式嗎?你有足夠的熱情進入編程世界嗎?然後,您將選擇正確的位置,因為通過本文,您將得到對編程的簡要介紹。在我們理解編程是什麼之前,你必須知道什麼是計算機。
  • Julia程式語言:地球物理研究的新選擇
    近年來,Julia 語言成為全球熱度上升最快的程式語言之一,截止2019年2月27日下載量已超過 400 萬次,下載者包括谷歌、Facebook、FAA 和美國能源部等部門的開發者,Julia社區已經註冊了數千個軟體包。Julia開發環境已經支持Windows、MacOS 、Linux、FreeBSD等多種作業系統平臺。
  • 2021年比較適合用於Web開發的7種程式語言
    程式語言就是一種用人類可讀的方式,告訴計算機該怎麼做一件事情。任何語言都是使用一系列符號來表示計算機的精確指令,這些指令的組合可以創建一個程序。在這個世界上,有成千上萬的程式語言,也有新語言在不斷被創建。構建網站也是這樣,我們可以通過許多可能的方式來構建,問題是,我們該怎麼做出正確的選擇?
  • 中科院軟體所武延軍:該怎麼看少兒編程被納入中小學課程?
    1.目前高水平軟體人才極其短缺,在中國更是如此。例如比爾蓋茨、賈伯斯、扎克伯格都曾經熱衷於編程。  2.編程能力培養並不會讓人的思維僵化,反而會培養人有意識的把僵化、重複性工作用機器去實現。  我們驚嘆於SpaceX獵鷹火箭的自動返回和太空艙自動對接,大狗機器人的靈活,伐木鋤草農機的高效。而這些背後,都是程序化思維實踐結果。
  • D-Wave開源量子編程軟體,無需掌握量子物理就可編程
    針對這一問題,D-Wave總裁Bo Ewald說:「D-Wave正在努力推進量子計算機硬體的開發升級,但這還遠遠不夠,需要有其他人參與到應用程式和軟體工具的設計中來。「D-Wave總裁Bo Ewald因此,D-Wave發布了一款名為Qbsolv的軟體,開發人員藉助它可以在無需掌握相關量子物理知識的情況下為D-Wave的量子計算機編寫程序。
  • 哪些棋牌遊戲編程軟體是你不了解的?
    對於棋牌遊戲編程,其實大家一直保持著好奇又疑惑的心理。對眾多做棋牌遊戲編程軟體的人來說,這既是一次很艱難的任務也是一次很輕鬆的旅程。棋牌遊戲編程軟體應該怎麼做,應該在製作過程中規避一些什麼樣的風險,和小編一起來聊聊。
  • 單片機的程式語言:彙編語言、C語言、PL/M和BASIC語言
    由於單片機的種種優點和特性,其應用領域極其廣泛。單片機系統同樣也由硬體系統和軟體系統構成,因此涉及到程序的編寫問題。單片機的程式語言很多,目前常見的程式語言有4種,即彙編語言、C語言、PL/M和BASIC語言。
  • 穩坐開發領域霸主之位,揭秘C語言無可取代的幾大原因!
    對於計算機程式語言來說,沒有什麼技術能沿用半個世紀年,除非它比其他的都好用。C語言於上世紀七十年代初年面世,如今在軟體世界仍保持著底層基礎開發的主流語言的地位。
  • 機器人編程教育離創業板有多遠?A股再現職教領域企業IPO排隊
    投行大V做教育,4年奔向IPO 招股書中介紹華航唯實在教育領域中的發展路徑是:依託自身對於職業教育行業的深刻理解,針對工業機器人職業教育的行業特點,首先進入這一職教領域,以此為切入點,進一步向智能製造職業教育的相關領域拓展,打造以培養智能製造領域技能人才為目標的專業建設解決方案,不僅向客戶銷售硬體,還賣軟體、教學資源、培訓和技術服務等配套產品。
  • 編程貓kitten工具再獲工信部人才中心賽事認可,2020年藍橋杯青少組...
    為了響應新時代的號召,編程貓圖形化編程工具--源碼編輯器(Kitten)陸續被納入各大國家級權威賽事,為青少年選手提供功能完善,操作便利,多元化的編程工具,助力中國青少年多維度發展,成為創造力與計算機思維俱佳的新時代人才。
  • 在計算機軟體領域 C語言之父和Linux之父誰更偉大
    而丹尼裡奇開發了兩大項目,可以說是計算機史上獨一無二的。 事實上,C語言在各種軟體程序,嵌入式系統開發,作業系統中,使用是最廣泛的。同時,C語言也影響了大多數現代主流的程式語言。 在1980年代,C語言的使用廣泛傳播,並且幾乎所有機器體系結構和作業系統都可以使用編譯器。尤其是,它已成為個人計算機的編程工具,無論是用於這些機器的商業軟體製造商,還是對編程感興趣的最終用戶,都非常受歡迎。
  • JetBrains進一步強化對中國軟體開發和人才培育的承諾
    2018年4月23日——技術領先的軟體開發公司JetBrains宣布,將進一步強化其對中國軟體開發和人才培育的承諾。作為一家技術領先的軟體開發公司,我們很榮幸能夠為中國的程序設計社群和市場的發展做出貢獻。」身為ICPC全球贊助商,JetBrains不僅為ICPC提供了財務支持,還為參賽者提供了包括CLion,IntelliJ IDEA和PyCharm在內的多種開發工具。其中,Kotlin連同C++,Java和Python一起被選為2018年世界總決賽的附加程式語言。