以下の例で、インデントとフォーマットはコードを解析する上で重要である。
式は改行によって完結する。式を羅列する場合はインデントが同じでなければならない(オフサイドルール)。
プロセス間の通信はチャネルを通して行われる。あるプロセスがチャネルにデータを出力する場合 ! を使い、チャネルからデータを入力するには ? を使う。入出力は通信相手がレディ状態となってデータ送受信が可能になるまでブロックされる。
以下の例では、 c が変数、keyboard と screen がチャネルを示している。
keyboard ? c
screen ! c
SEQはそれに続く式のリストを逐次的に実行することを示す。他のプログラミング言語のように逐次実行が暗黙のうちに採用されることはない。以下の例で「:=」は代入である。
SEQ
x := x + 1
y := x * x
PARはそれに続く式のリストを並列的に実行してもよいことを示す。
PAR
x := x + 1
y := y * 2
ALTは選択実行を可能とする。ガード部をもつコマンドのリストが後に続き、ガード部はboolean値を返す条件式と入力チャネル式(どちらも省略可能)から成る。各ガードは条件が真でかつ入力チャネルから入力があったときに成功する。実行時には複数のガードが同時に成功してもかまわない。
ALT
count1 < 100 & c1 ? data
SEQ
count1 := count1 + 1
merged ! data
count2 < 100 & c2 ? data
SEQ
count2 := count2 + 1
merged ! data
status ? request
SEQ
out ! count1
out ! count2
この例は c1 および c2 のチャネルからデータを読み込んで、ひとつの merged というチャネルにそれを渡すものである。
countN が 100 になると、対応する入力チャネルからの入力は受け付けなくなる。status チャネルからリクエストがあると、c1 および c2 から何回データを受け取ったかが out チャネルに出力される。