並行計算モデルと通信の計算モデルを基礎にして、複数のプログラムが協調して働くソフトウェアシステムを設計および構成できるようにする。

ソフトウェアシステムは、コンピュータシステムの変化に伴い、単独のプログラムによる逐次プロセスの形態から、複数のプログラムによる並行プロセスの形態へ、さらには、分散環境で移動する形態へ重みが変ってきている。
そのようなソフトウェアの計算モデルを基にして、実際のプログラミングの基本機構について述べる。具体的には,プロセス間,スレッド間,および,オブジェクト間の通信の機構と,プログラムが移動する機構を取り上げる。
ソフトウェアを設計・創作するにあたって、最も基本となるツールはプログラミング言語である。それを支援する言語処理上の問題と、オペレーティングシステムの役割を合わせて考察する。

1. 言語の役割とプログラミングパラダイム
2. 並行計算モデルとプロセス間通信の計算モデル (π計算モデル)
3. 関数の起動機構
4. プロセス間の通信と同期のプログラミング
5. 移動するプログラムの基本機構

教科書として一冊にまとまったものはない。

1. Robin Milner : Communicating and Mobile System: theπ-Calculus, Cambridge, 1999.
(CD10||169)
2. Andrew S. Tanenbaum and Albert S. Woodhull (千輝順子 訳):
オペレーティングシステム‐設計と理論およびMINIXによる実装,
ピアソンエデュケーション, 1998. (言語設計学)
3. W. Richard Stevens : Inter‐process communications : Unix Network
Programming, Volume−2, Prentice Hall, 1999. (言語設計学) (翻訳書もある)
4. Elliotte Rusty Harold (ユニテックス 訳) : Java ネットワークプログラミング,
オライリージャパン, 1997. (DA100||49) (第2版もある)

(必ずしも先修条件ではない)
基礎として、システムプログラム概論、計算機構造概論。
関連科目として、計算理論 I、ソフトウェア工学 I。
C、C++ あるいは Javaのプログラムを読めることが望ましい。

成績評価は、試験(50%)、3つのレポート(30%)、および、授業の出席(20%)によって行う。