14

Scala (および Akka) から来た私は、最近、分散コンピューティングを念頭に置いて設計された他の言語、つまり Erlang (および Oz と Bloom のごく一部) に注目し始めました。Erlang と Oz は両方とも動的に型付けされます。私の記憶が正しければ (リンクを見つけようとします)、人々は Erlang に型を追加しようとし、そのかなりの部分を型付けすることに成功しましたが、システムを強制的にシステムに適合させることはできませんでした。最後のビット?

Oz は研究言語ですが、確かに興味深い言語ですが、これも動的に型付けされています。

Bloom の現在の実装は Ruby で行われているため、動的に型付けされています。

私の知る限りでは、Scala (および Haskell だと思いますが、最初は分散システムではなく純粋な遅延関数型言語の探索として構築されたと思います) は、静的に型付けされ、言語レベルの抽象化を提供する唯一の言語です (不足のため)。より適切な用語の) 分散コンピューティングで。

特に、分散システムのプログラミングに言語レベルの抽象化を提供するというコンテキストにおいて、静的型付けよりも動的型付けに固有の利点があるかどうか疑問に思っています。

4

3 に答える 3

15

あまり。たとえば、Oz を発明した同じグループが後にAlice MLに取り組みました。このプロジェクトのミッション ステートメントは、Oz を型付きの関数型言語として再考することでした。そして、それは研究プロジェクトのままでしたが、同じ基本機能がそのような設定でサポートできることを実証するのに十分な概念実証であったと私は主張します.

(完全な開示: 私は当時、そのグループの博士課程の学生であり、Alice ML の型システムが私の論文でした。)

編集: Erlang に型を追加する際の問題は配布ではありません。それは単に、事後に型を言語に追加してもうまくいかないという一般的な問題の例です。一方、Erlang 用の Dialyzer はまだあります。

編集 2: 型付き分散言語に関する興味深い研究プロジェクトが他にもあったことに言及する必要があります。たとえば、Alice ML と同様の範囲のAcuteや、モーダル型を使用してモビリティ特性のより強力なチェックを可能にするML5などです。しかし、それらは紙の形でしか生き残っていません。

于 2013-04-11T16:09:09.723 に答える