用 AI 幫助記錄 COBOL 代碼,防止相關(guān)知識(shí)丟失
然而,盡管許多組織尚依賴 COBOL,但 COBOL 開發(fā)人員的數(shù)量仍在持續(xù)減少。更令人擔(dān)憂的是,當(dāng)現(xiàn)有的 COBOL 開發(fā)人員退休和轉(zhuǎn)移時(shí),有關(guān)如何構(gòu)建和構(gòu)建 COBOL 應(yīng)用程序的實(shí)際知識(shí)也可能會(huì)逐漸丟失。為了應(yīng)對(duì)這一挑戰(zhàn),初創(chuàng)公司 Phase Change Software 正在開發(fā)的一種名為 COBOL Colleague 的新型 AI 驅(qū)動(dòng)工具。
Phase Change Software 總裁 Steve Brothers 稱,COBOL 不會(huì)很快消失;并向外媒 VentureBeat 表示,COBOL 開發(fā)人員的欠缺并不是最根本的問題?!罢嬲臐撛趩栴}是了解應(yīng)用程序的功能,因?yàn)橐行У匦薷拇a,你需要了解代碼的功能”。他補(bǔ)充稱,僅僅擁有修改代碼的能力是不夠的,還需要的是關(guān)于代碼的知識(shí);相關(guān)代碼知識(shí)的缺失是許多編程語言中都存在的一個(gè)問題,但對(duì)于已經(jīng) 60 多歲的 COBOL 來說尤其嚴(yán)重。
Phase Change COBOL Colleague 軟件采用了 COBOL 源代碼,并使用符號(hào)機(jī)器學(xué)習(xí)和靜態(tài)分析技術(shù)將代碼轉(zhuǎn)換為因果模型。然后,該模型可以幫助組織理解和維護(hù)代碼。COBOL Colleague 最初可用于在 Linux 上運(yùn)行的 on-premises 環(huán)境中部署。
值得一提的是,當(dāng)下市場(chǎng)中聲稱使用 AI 來幫助開發(fā)人員提高效率的開發(fā)工具不在少數(shù),其中就包括近期熱度頗高的 GitHub Copilot service。對(duì)此,Brothers 則表示,他們正在構(gòu)建的工具與 GitHub Copilot 非常不同。Copilot 旨在幫助開發(fā)人員編寫代碼,但它并不能幫助開發(fā)人員在編寫代碼后對(duì)其進(jìn)行維護(hù)?!拔覀儚氖碌氖歉淖兇a的業(yè)務(wù),而不是創(chuàng)建代碼的業(yè)務(wù),這是最大的不同之一”。
Phase Change Software 沒有為他們這一 AI 工具采用典型的機(jī)器學(xué)習(xí)方法,即需要在數(shù)據(jù)集上進(jìn)行訓(xùn)練。原因在于,當(dāng)涉及到源代碼時(shí),想要獲得足夠大的源代碼存儲(chǔ)庫以便能夠進(jìn)行訓(xùn)練并不容易。
另一個(gè)挑戰(zhàn)是路徑爆炸。在代碼開發(fā)中,一個(gè)操作可以通過使用不同的 “else” 函數(shù)沿著任意數(shù)量的不同路徑進(jìn)行。使用 “else” 函數(shù),操作可以根據(jù)不同的變量或條件而改變。而對(duì)于訓(xùn)練數(shù)據(jù)路徑爆炸的可能性,Brothers 指出,排列后的數(shù)量就是一個(gè)天文數(shù)字,因此對(duì)于典型的機(jī)器學(xué)習(xí)訓(xùn)練模型來說是不可行的。
“我們用圍繞符號(hào)機(jī)器學(xué)習(xí)的人工智能技術(shù)解決了這個(gè)問題,所以沒有訓(xùn)練數(shù)據(jù)集;我們工具的唯一輸入是源代碼”。符號(hào)人工智能(Symbolic AI)就是以一種更接近人類如何以因果方式推理世界的方法來學(xué)習(xí)。Brothers 解釋道,代碼中的行為是因果關(guān)系,有輸入和輸出。
雖然 COBOL 是 Phase Change 的第一個(gè)目標(biāo),但該公司表示,計(jì)劃以后將繼續(xù)擴(kuò)展以支持其他編程語言?!败浖_發(fā)人員花費(fèi) 80% 的時(shí)間試圖找出他們需要在代碼中進(jìn)行修改的位置。無論是哪種編程語言如何,執(zhí)行此操作的步驟都是相同的,這就是我們正在實(shí)現(xiàn)的自動(dòng)化?!?/p>
本文轉(zhuǎn)自O(shè)SCHINA
本文標(biāo)題:用 AI 幫助記錄 COBOL 代碼,防止相關(guān)知識(shí)丟失
本文地址:https://www.oschina.net/news/209014/ai-cobol-code