processはC++にはないplangのprocedureの一種です。
今までのチュートリアルでは全ての処理内容をmain processに記述していましたが、plangでは複数のprocessを同時に処理することができます。
processは以下の形式で定義されます。
process id parameters compound_statement
processはreserved wordです。processは常にこのwordから始まります。
idはcallerがprocessを識別するためのidentifierです。
parameters、compound_statementはfunctionと同様に定義します。
process p(){
int i=0;
while(++i<10)
using::write("p: "+i+"\n");
}
process::p p;
新たにprocess pを開始するためには、process::p型の変数を宣言します。上例では変数pが宣言され、process pが開始されます。process::*はprocessへの参照を持つデータ型で、通常のデータ型の宣言とは扱いが異なります。
process r(int i){
while(++i<10)
using::write("r: "+i+"\n");
}
process::r r(-1);
例ではprocess rへ-1を渡して開始しています。
while(!p.exit()||!r.exit()){
using::write("main: wait\n");
}
process::*型はexitというmethodを持ちます。exit()はprocessが終了している場合にtrueを返します。
例ではpとrが参照するprocessが終了するまで、main process内で"main: wait\n"と出力します。
Next: Tutorial 08. Inline Functions
Prev: Tutorial 06. Functions