20世紀の名著名論

C. A. R. Hoare: Communicating Sequential Processes

Communications of the ACM 21(8), pp.666-677 (Aug.1978)


これは並行プログラミングの混沌の世界にHoare が 投じた一石である.頭文字をとって CSP と称される ようになったプログラミング言語の提案であるが, 「入出力こそがプログラミングの基本プリミティブで あり...」というアブストラクトの書出しを大学院生 のときに読んで,目から鱗が落ちた気分になったのを 思い出す.

並行プログラミングは逐次プログラミングより格段 に難しいものと信じられている.教科書を開くと,並 行プロセス,プロセス間通信,同期などの概念が通過 儀礼のように次々登場して,学ぶ者を身構えさせる (実際,E. W. Dijkstra によるこの分野のパイオニ ア論文 "Co-operating Sequential Processes" (1968) はまさに初学者を身構えさせるための論文であった). これに対して「入出力機能を備えた逐次プロセスを構 成要素として並行プログラムが組める」という本論文 のスローガンは何とも優しい.単に表現が優しいだけ でなく,共有メモリによる情報交換からメッセージ通 信による情報交換へのパラダイムシフトを,誰にでも わかる具体的な形で明快に示している.多くのプログ ラム例を用いて CSP の単純さと表現力を紹介すると 同時に,プログラミング言語設計に対する氏の哲学を, 構文設計の細部に至るまで存分に披露している.最近 のプログラミング言語の論文ではあまり見ることので きなくなってしまったアプローチと構成である.

CSP は正確にはプログラミング言語ではなくて言語 モデルと呼ぶべきかもしれないが,CSP をベースに実 用並列言語に仕立てあげられたのが Occam である. オッカムの剃刀に由来するその名称は,CSP の設計哲 学の強烈な対外アピールともなっている.Occam のプ ラットフォームとして作られた並列処理マイクロプロ セッサ Transputer のアーキテクチャもまた,CSP の 思想の一つの体現である.

CSP は静的な資源割付けを可能にするために,再帰 呼出しや動的データ構造,非同期通信などの動的要素 を排除した質素な造りとなっている.世の中のその後 の研究は,通信路の再構成やプロセスの移動が可能な 言語に興味が移っていったが,25年たった今の技術を もってすれば,再帰呼出しも動的データ構造も非同期 通信も備え(て計算機科学者の欲求を満たし)た上で, 広い条件の下で静的な資源割付けもできる並列言語が 作れるような気がする.最近のハードウェア環境の多 様化に伴って,このような形での CSP への回帰は挑 戦する価値の大きなテーマかもしれない.

"Communicating Sequential Processes" と題する 著作物には,標題の論文のほかに1985年刊行の同名の 著書 (Prentice-Hall) がある.Hoare の最初の著書 でもあるこの本では,CACM の論文とはうって変わっ て並行計算の基礎をなす数学的理論が展開されている. 並行性という難しい事象にきちんと立ち向かうには数 学という道具が必須となることは論をまたないが,あ まりに難しい数学になったら誰も近づかない.しかし Hoare は,決定性プロセスの理論ならば大学2年生に 教えることもできるとまえがきで述べている.本書は 現在では無料でダウンロードできるので読んでみるの もよいであろう.ちなみに CiteSeer によれば,この 本と CACM の論文とを合わせると "3rd most cited computer science reference" となるそうである.

著書の方で展開された数学的理論としての CSP (Theoretical CSP) とよく並び称されるのが,Robin Milner のCCS (Calculus of Communicating Systems) とその発展であるπ計算である.理論計算機科学の分 野では Milner の枠組みの方がはるかによく研究され ているが,ここには両者の立場の違いが見て取れる. Milner はいわば,並行計算の数学モデルを検討する ための「枠組み」を作って,他の研究者がその中でさ まざまな検討を行って論文を書くことができるように した.Hoare は,並行計算の数学モデルはどうあるべ きかを洞察し,完成された「解」を1985年の著書で呈 示した.企業のソフトウェア技術者という経歴をもつ Hoare のさまざまな仕事には,実務経験をもつエンジ ニアの観点と問題意識がにじみ出ているように思える.

上田和紀/早稲田大学 理工学部 コンピュータ・ネットワーク工学科
(情報処理,Vol.46, No.1(2005年1月号), p.66 所収)


Kazunori UEDA
Last modified: March 13, 2007