Typechecking is undecidable when 'type' is a type (1989) [pdf]
Hacker News
This 1989 research paper, 'Typechecking is Undecidable When 'Type' is a Type', explores the theoretical limitations of typechecking in programming languages, demonstrating its undecidability under certain conditions.
然而,另一派觀點則對此表示擔憂。反對者認為,類型檢查如果不可判定,意味著程式設計師將失去對編譯器的預測能力。當一個正確的程式因為類型檢查陷入無限迴圈或耗盡資源而無法編譯時,開發者必須深入了解編譯器內部的約束求解機制,這破壞了類型系統作為抽象層的初衷。此外,有人提到 Swift 語言在處理複雜表達式時偶爾會出現類型檢查過慢的情況,這正是理論上的不可判定性或高複雜度在現實中造成的負面體驗。