2016-04-04 93 views
1

我正在研究一个需要我在Haskell中编写自己的类型推理引擎的项目。类型推理引擎haskell

  1. 为什么统一的算法是非常重要的建设推理引擎
  2. 我可以创建这种类型的推理引擎与像C#语言 非常感谢

回答

3

关于这个问题的重要的参考是“打字哈斯克尔在哈斯克尔“由马克琼斯。有一个markdown version由Chris Done可以转录以及the original转录。另外,Types and Programming Languages对经典算法W(基础Haskell和ML风格类型推断)进行了解释并证明了它的正确性。

请记住,类型推断作为一个问题很大程度上取决于您输入的源语言,而语言级别的小改动会严重影响语言。例如:

  • 您是否让泛化?
  • 类型类?
  • 值或单态限制?
  • 任何类型的模块?

回答是或否对这些问题中的任何一个都会疯狂地改变你的类型推断算法。在你的问题中需要更多的信息,以便能够给你更具体的资源。

在打字哈斯克尔在Haskell但也没有试图解决问题的一个真正的编译器可能有,像生产AST的注释版本,以便将来编译通过知道东西是如何输入,不仅仅是它是类型。如果你正在构建一个编译器,那么你几乎肯定会想要这样做。