我想了解类型背后的实际理论,而不是仅仅了解一些现有语言的最新实际变化(例如,不仅仅是 Haskell 或 Scala 的类型系统如何工作)。
获取此背景的最佳方法是什么?
我想了解类型背后的实际理论,而不是仅仅了解一些现有语言的最新实际变化(例如,不仅仅是 Haskell 或 Scala 的类型系统如何工作)。
获取此背景的最佳方法是什么?
类型论是一个很大的领域。首先,术语“类型”在计算机科学中是一种用词不当,出于几个原因,尽管它们主要用于相同的基本概念。出于相同的原因,类型已经出现在许多环境中,如哲学、计算机科学和数学。数学中类型的起源来自于试图将集合论形式化并遇到一些细微的悖论,尽管类似的悖论也出现在计算机科学中。(例如,我喜欢指出 Girard 的悖论)。
您目前可能解释类型的方式是在整个 70 年代至 90 年代计算机中流行的一个想法:类型是一种轻量级的流不敏感分析,它允许我们对我们编写的程序做出简明的逻辑保证。类型可以用于此,但您实际上可以将它们一直用于编码高阶逻辑,其中程序是证明。到这里后,您可以进行证明,提取计算组件,并将其转换为计算“正确”结果的程序(关于您证明的定理)。
您可以从这里走几条路:
您可能还想研究一些相关领域:
除此之外,我还有一些很好的学习建议,但我肯定会从 Ben Pierce 的书开始(我从来没有真正进入过后续的书“类型和计算机科学的高级主题”,但这也可能很有趣给你)。特别是,我记得《自动推理手册》中有一篇关于高阶类型理论的精彩文章。
Ps,我确信这个问题的答案是具体的,“获得博士学位。在编程语言、哲学或逻辑方面......”;-)