首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >erlang中的静态类型检查

erlang中的静态类型检查
EN

Stack Overflow用户
提问于 2011-12-14 22:57:03
回答 4查看 1.8K关注 0票数 7

我慢慢爱上了Erlang,只有一个很大很大的问题。

我是Standart ML和ocaml等语言的铁杆粉丝,它们具有强大的静态类型检查功能。

在erlang中有没有一种好的、干净的方式来引入一些静态类型检查。我正在查看-type-spec注释。

有没有人有好的解决方案?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2011-12-15 01:40:37

我去过那里!我喜欢OCaml和Erlang,并且经常使用它们。

当我开始使用Erlang时,我已经有了多年的OCaml使用经验。我花了几周的时间来适应编译器中没有静态类型检查器的事实。但在那之后,疼痛完全消失了。

在某种程度上,不使用类型检查器是一项值得进行的工作。对我来说,这是一次启发性的经历,真的让我成为了一名更好的程序员。

但是,Erlang有一个外部静态类型检查器,名为Dializer。我发现它非常有用。它的问题是你需要单独调用它,而且它很慢。偶尔运行一次(例如,在提交代码之前或作为自动化构建的一部分)效果很好。我从来没有尝试过在每次编译之后运行它,因为它太分散了,以至于不能等到它完成。

票数 13
EN

Stack Overflow用户

发布于 2011-12-14 23:52:27

检查Dialyzer工具

透析器是一种静态分析工具,可识别软件差异,如definite errors,在单个Erlang模块或整个(组)应用程序中由于某些编程错误、不必要的测试等而变得无效或无法访问的代码。

票数 4
EN

Stack Overflow用户

发布于 2014-01-17 20:20:10

多年来,一直有人尝试在

之上构建类型系统。一次这样的尝试发生在1997年,由Glasgow Haskell编译器的主要开发人员之一Simon Marlow和Philip Wadler进行的,Philip Wadler参与了Haskell的设计,并为monads背后的理论做出了贡献(请阅读关于所说的类型系统的论文)。乔·阿姆斯特朗后来对这篇论文发表了评论:

有一天,Phil打电话给我,告诉我a) Erlang需要一个类型系统,b)他已经写了一个类型系统的小原型,c)他有一年的休假,准备为Erlang写一个类型系统,“我们有兴趣吗?”答案是:“是的。”

Phil Wadler和Simon Marlow在一个类型系统上工作了一年多,结果在20年内发表。这个项目的结果有点令人失望。首先,只有语言的一个子集是类型可检查的,主要的遗漏是缺少进程类型和进程间消息的类型检查。

http://learnyousomeerlang.com/types-or-lack-thereof

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8506556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档