以程式碼分析結合機器學習技術增強在科學計算與資料科學領域之程式設計支援

專案詳細資料

Description

由於有著大量的函式庫支援,Python這類腳本語言日益普及,尤其在科學計算與資料科學領域裡。許多知名函式庫都提供於Python使用,例如SciPy Stack與TensorFlow/Keras,讓非程式設計專家的人都能快速入門。使用這些函式庫的撰寫方式不同於原本語言裡的寫法,可說是一種內嵌特定領域語言。以效能考量為例,程式開發者應使用函式庫提供而非語言內建的陣列,以獲得連續記憶體配置。變數賦值與表示式求值的時間點亦根據函式庫設計而非底層語言之語意。這樣的內嵌特定領域語言寫法,以及底層語言型別系統的限制,使得部分具有型別意義的表示式無法適切地以型別表現。另一方面,以往使用傳統語言如Fortran與C的科學家,不見得熟悉可受益於先進語言特性的寫法。基於這個觀察,我們提出對這類科學計算與資料科學程式碼進行分析,結合機器學習技術,提供程式設計支援。本研究預期開發工具以檢測程式碼隱藏缺陷並提供改寫建議,以Python為例整合於開發環境。儘管已存在程式碼分析研究與各種機器學習應用,但就我們了解,仍有藉機器學習加強程式碼分析的空間。在前一個計畫裡我們研發了準則與工具來協助科學家以先進語言改寫舊有程式;本計畫則進一步著眼於改寫後的程式碼與內嵌特定領域語言程式碼,加強該領域之程式設計支援。
狀態已完成
有效的開始/結束日期1/08/2131/07/22

Keywords

  • 程式碼分析
  • 機器學習
  • 科學計算
  • 資料科學
  • 特定領域語言

指紋

探索此專案觸及的研究主題。這些標籤是根據基礎獎勵/補助款而產生。共同形成了獨特的指紋。