我想了解类型背后的实际理论,而不仅仅是了解一些现有语言中的最新实际变化(例如,不仅仅是Haskell或Scala的类型系统如何工作)。
获取此背景的最佳方法是什么?
答案 0 :(得分:58)
类型理论是一个很大的领域。首先,“类型”一词在计算机科学中是一种用词不当,原因有几个,即使它们主要用于相同的基本思想。在许多情境中出现了类型,哲学,计算机科学和数学,主要是出于同样的原因。数学类型的起源来自试图使集合论形式化并遇到细胞悖论,尽管计算机科学中出现了类似的悖论。 (例如,我想指出吉拉德在这个问题上的悖论)。
你可能在当前时刻解释类型的方式是一种在70年代到90年代在计算机中流行的想法:类型是一种轻量级的流量不敏感分析,它允许我们对我们编写的程序做出简明的逻辑保证。类型可以用于此,但实际上您可以将它们一直带到编码高阶逻辑,其中程序是证明。一旦你到这里,你可以拿一个证明,提取计算组件,并把它变成一个计算“正确”结果的程序(关于你证明的定理)。
您可以从这里走几条路:
您可能还想查看一些相关字段:
除此之外我还有一些很好的建议,但我肯定从Ben Pierce的书开始(我从未真正进入后续书“类型和计算机科学的高级主题”,但那是也许你也很有意思)。特别是,我记得“自动推理手册”有一篇关于高阶类型理论的伟大文章。
P.s。,我确信这个问题的答案具体是“在编程语言,哲学或逻辑方面获得博士学位......”; - )