Pristine Ack-5.5
[Ack-5.5.git] / doc / occam / p4
1 .NH
2 Particular details
3 .NH 2
4 Lower case/Upper case
5 .PP
6 Keywords must be either fully written in lower case or in upper case, thus
7 \fBPAR\fP is equivalent to \fBpar\fP but \fBPar\fP is not a keyword. Identifiers
8 may be of mixed case. Different styles are used in our examples just to indicate
9 what's accepted by the compiler.
10 .NH 2
11 File inclusion
12 .PP
13 The C preprocessor is applied to the input file before
14 compilation, so that files containing useful \fBPROC\fP and \fBDEF\fP
15 declarations can be used in the program by using the \fB#include\fP-directive
16 of the preprocessor.
17 .NH 2
18 Substitution
19 .PP
20 Named processes are not textually substituted. A procedure call is used instead.
21 The semantics of occam substitution imply this by letting a global variable
22 (i.e. not declared inside the named process' body) be found where the named
23 process is defined and not where it is substituted.
24 .NH 2
25 ANY
26 .PP
27 According to the occam syntax the \fBANY\fP keyword may be the only argument of
28 an input or output process. Thus,
29 .DS
30 .ft CW
31         c ? ANY; x
32 .ft
33 .DE
34 is not allowed. Because it was easy to add, and it was used by some programs,
35 our compiler allows it. (If portability is an issue, usage of this feature
36 is not advisable).
37 .NH 2
38 Configuration
39 .PP
40 The special configuration keywords like \fBPLACED\fP, \fBALLOCATE\fP, \fBPORT\fP
41 and \fBLOAD\fP are not implemented. Only \fBPRI\fP works because \fBPAR\fP and
42 \fBALT\fP work the same without it.