Concurrent Cプログラミング言語―並行プログラミング入門
ナイレン・ゲハーニ, ウィリアム・D. ルーム
職場の本棚で発掘。そういえばこんなのあったなー、と。CSPベースの通信を行うCの並行拡張、という意味でGoに似ている。Goのgoroutineの代わりにプロセスという概念があり、プロセスに対して「トランザクション」と呼ばれるメッセージを送ることができる。
Goではチャンネルとgoroutineが独立していて、チャンネル自体を受け渡すことができるのに対して、Concurrent Cでは、プロセスがメッセージの受信箱と一体化しているので自由度が低い。このあたり、CSPというよりもActorっぽい。
原著は1989年。訳書が1992年。20年たって、ようやくこのコンセプトが生かせる環境になったかと思うと感慨深い。1992年ごろには、OmronのマルチCPUのワークステーションがあったような気もするが。。
Concurrent Cプログラミング言語―並行プログラミング入門
posted with amazlet at 10.11.05