WikiEdge:ArXiv速遞/2025-02-27

出自WikiEdge
於 2025年3月6日 (四) 16:48 由 Mingli留言 | 貢獻 所做的修訂
跳至導覽 跳至搜尋

摘要

  • 原文標題:On the State of Coherence in the Land of Type Classes
  • 中文標題:類型類領域中的一致性狀態
  • 發布日期:2025-02-27 21:42:04+00:00
  • 作者:Dimi Racordon, Eugene Flesselle, Cao Nguyen Pham
  • 分類:cs.PL
  • 原文鏈接http://arxiv.org/abs/2502.20546v1

中文摘要類型類是用於實現通用算法和數據結構而不損失效率的流行工具,彌合了參數化多態特設多態之間的差距。自它們在Haskell中的最初發展以來,現在它們在許多其他工業級編程語言中占據了重要地位,特別是包括SwiftRustScala。類型類的成功在很大程度上取決於編譯器通過類型導向解析推斷隱式參數的能力。這種技術有時被稱為**隱式編程**,它允許用戶省略語言實現可以從上下文中推導出的信息,例如特定類型類的實現。 隱式編程的一個缺點是類型導向解析可能會產生模糊的結果,從而威脅到一致性,即有效程序具有唯一含義的屬性。這個問題在社區中引發了關於如何解決它的正確方法的爭論。一方主張靈活性,其中隱式解析是上下文敏感的,並且通常依賴於依賴類型特徵來保持健全性。另一方則認為上下文不應妨礙等式推理,並且通常要求類型類實例在整個程序中是唯一的,以避免歧義。 儘管關於類型類和隱式編程的研究文獻很多,但大多數學術文獻集中在少數幾種語言上,對其他主流項目的見解很少。與此同時,後者在不同的名稱下發展出了類似的特徵和/或限制,使得語言用戶和設計者難以全面了解設計空間。為了緩解這個問題,我們着手研究Swift、Rust和Scala這三種廣泛使用類型類的流行語言,並將它們的一致性方法與Haskell的方法進行比較。結果表明,除了表面上的語法差異外,Swift、Rust和Haskell實際上非常相似,這三種語言提供了可比的策略來應對類型類實例唯一性的限制。