#USE "course.lib" VAL N IS 10: PROC main(CHAN BYTE stdin, stdout, stderr) [N+1]CHAN INT c: PROC send(CHAN BYTE input, CHAN INT output) BYTE ch: SEQ i=0 FOR N SEQ input ? ch output ! INT(ch-'0') : PROC pipesort(CHAN INT input, output) INT num, max: SEQ input ? max SEQ i=0 FOR N-1 SEQ input ? num IF num > max SEQ output ! max max:=num TRUE output ! num output ! max : PROC receive(CHAN INT input, CHAN BYTE output) INT num: SEQ i=0 FOR N SEQ input ? num out.int(num, 0, output) : SEQ PAR send(stdin, c[0]) PAR i=0 FOR N pipesort(c[i], c[i+1]) receive(c[N], stdout) out.string("*n",0,stdout) :