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