ErlangとかScalaとかに関する雑感

@shinji_kono さんによるつぶやきのまとめ.
5
Shinji Kono @shinji_kono

Turing 理論や表示的意味論がプログラミングに役に立たない以上に、プロセス代数はプログラミングに役に立たないので無視して良いと思う。(ひどい)

2010-07-24 16:51:35
Shinji Kono @shinji_kono

でも、モデル検証は使えるので、時相論理、CTLは、知っていた方が良いです。リニアかブランチングかは、validityか様相演算子かの差なので無視して良いと僕は思うが、まぁ、お好きなように。等価性検証やSATとかも、あるけど、僕は使ったことはない。手前味噌だけどね。

2010-07-24 16:58:33
Shinji Kono @shinji_kono

π代数が目指したものがなんだったのかは、僕は、良くわからなかった。Chemical Abstract Machine とかに近いので、もしかすると、分子計算機とかを考えていたのかも。プログラムと、データが同じなのは面白いのだが、物理的な計算とのつながりがわかりづらい。

2010-07-24 17:03:11
Shinji Kono @shinji_kono

Prolog は、理論とプログラミングが一致した珍しい例だったが、実用プログラミングを目指した段階でおかしくなった。特に差分リストが、意味論と独立にプログラミングに使われ出した時点で、はっきり破綻したと思う。

2010-07-24 17:05:30
Shinji Kono @shinji_kono

Concurrent Prolog 系では、差分リストが、イベント駆動ストリームとして、導入されてしまったので、さらに、論理的意味論から離れてしまった。面白かったので良いと言う言い方はできるのだけど、なんのための単一化だったのかとか、もう、どうでも良くなった。

2010-07-24 17:08:41
Shinji Kono @shinji_kono

Erlang では論理的意味論は捨てているし、ストリームは明示的なので、より、CSP寄りになってます。一つの進化の方向ではある。構文は、Prolog なところがあれだが。

2010-07-24 17:10:29
Shinji Kono @shinji_kono

Scalaは、Hewitt のActorにかなり忠実。case class とかね。米澤先生のABCLは状態ベースなのだが、それより、Agha のACT3に近いと思う。become があるし。オブジェクト自体は状態は一つで、状態を変えたい時は新しくオブジェクトを作る感じ。

2010-07-24 17:14:18
Shinji Kono @shinji_kono

僕は、Erlang も、Scalaも、GCがあるので嫌いかも。並列処理には邪魔だろ。

2010-07-24 17:15:22