Hack语言的类型系统是如何定义的?

时间:2014-07-23 22:45:03

标签: types static-analysis hacklang

请准确说明Hack语言的类型系统。它似乎并不存在于网上 - 我所能找到的只是the docs中散布的例子 - 所以请在答案中详细描述。

例如,我想知道如何在Hack中定义子类型,并且在各种Hack类型检查/静态分析模式(strict,partcial,decl)中使用了赋值兼容性的概念。

1 个答案:

答案 0 :(得分:3)

如果您要求为Hack提供正式的语言规范,那么现在还没有,但我们认为最终会有一些好处。如果您要求推理规则和关于语言的正式证明,那么,我们更专注于制作一种务实的语言而不是坐下来并且实际上花时间来证明它是合理的。 :)(那就是说,100%严格的代码应该是合理的,即没有运行时类型的错误,如果不是那个错误;我们只是永远不会坐下来并正式证明这一点。)

因此,除非您想开始深入了解类型检查源,否则您链接到的文档是最好的。为此,您可能会对our unification codeour subtyping relationgeneral typechecking的详细信息感兴趣。 (还有很多很多,但如果你是那种想要深入了解我们如何实现统一的细节的人,我相信你可以自己找到其余部分:))

如果您对实施有具体问题,请随时通过" hacklang"如果他们是关于主题的标签,一般情况下,我很乐意在美国太平洋时间的工作时间在Freenode的#hhvm聊天。