A Joyce programozási nyelv

Programok

Program = [ ConstantDefinitionPart ] [ TypeDefinitionPart]
AgentProcedure .

A program egy olyan blokk, amely egy ágens eljárást tartalmaz. A program az eljárás által meghatározott ágens (az un. Kezdeti ágens) aktiválását és végrehajtását jelenti. A kezdeti ágens aktiválása egy másik programban (egy operációs rendszerben) lévő ágens eljárás végrehajtásának az eredménye. A program az operációs rendszerrel a kezdeti ágens külső csatornáin (az ún. rendszercsatornákon) keresztül kommunikál. Amikor a kezdeti ágens terminál, a program végrehajtása befejeződik.

Példa

{ A program egy rekurzív algoritmust használ n egész szám rendezésére és kiírására. Az io port változó az operációs rendszerrel való kommunikálásra használt rendszer csatornát jelöl. A rendező ágens magyarázatát ld. [3]}

type iosym = [readint(integer), writeint(integer)];
agent sortprogram(io: iosym); type stream = [int(integer), eos];
agent sort(inp: stream; out: iosym); var more: boolean; x, y: integer; succ: stream; begin poll inp?int(x) -> +succ; sort(succ, out); more := true | inp?eos -> more := false end; while more do poll inp?int(y) -> if x > y then begin succ!int(x); x:= y end else succ!int(y) | inp?eos -> out!writeint(x); succ!eos; more := false end end;
var i, n, x: integer; inp: stream; begin +inp; sort(inp, io); io?readint(n); i:= 1; while i <= n do begin io?readint(x); inp!int(x); i := i + 1 end; inp!eos end;