研發對動態型別程式語言裡自定義型別物件的不可變性質檢查之程式設計支援

專案詳細資料

Description

動態型別的程式語言例如Python,經常以各種特定領域函式庫進行擴充,作為研究或產業上的工具。然而基於其語言特性,型別檢查只能留到執行期間,因此許多可能的錯誤無法被事先找出。此外,特定領域函式庫非常依賴函式呼叫的使用,因此運用上的錯誤也難以在語言層級發現。從型別安全的出發點考量,對此近來已有運用漸進型別與抽象解譯的手法。比如說Python的外部檢查器,可根據開發者標記的型別提示預先找出型別錯誤。另一方面,包含我們在內的許多研究則致力於運用抽象解譯手法,找出語言型別系統無法捕捉的函式呼叫之資料型態錯誤。不過關於副作用與不可變性質的程式設計協助上,仍有可研究的進步空間。本研究基於這個觀察與過往經驗,進一步聚焦函式庫自定義型別物件的不可變性質。就我們所知,它尚未被很好地導入Python這類程式語言裡,而它有助於開發者意識副作用甚至耦合性問題。本研究預計以抽象解譯建立程式碼分析工具開始,協助開發者了解程式碼裡的不可變性質與副作用。接著研究以型別提示機制提供此分析,銜接其他既有檢查器。為求更好的語言層級支援,也會朝向開發語言結構以適用該檢查。將該工具與我們先前的成果整合也包含於研究目標內,以提供更為完整而良好的程式設計支援。
狀態已完成
有效的開始/結束日期1/08/2331/07/24

聯合國永續發展目標

聯合國會員國於 2015 年同意 17 項全球永續發展目標 (SDG),以終結貧困、保護地球並確保全體的興盛繁榮。此專案有助於以下永續發展目標:

  • SDG 4 - 品質教育

Keywords

  • 程式碼分析、漸進型別、型別提示、抽象解譯、程式語言結構

指紋

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