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