.NH Particular details .NH 2 Lower case/Upper case .PP Keywords must be either fully written in lower case or in upper case, thus \fBPAR\fP is equivalent to \fBpar\fP but \fBPar\fP is not a keyword. Identifiers may be of mixed case. Different styles are used in our examples just to indicate what's accepted by the compiler. .NH 2 File inclusion .PP The C preprocessor is applied to the input file before compilation, so that files containing useful \fBPROC\fP and \fBDEF\fP declarations can be used in the program by using the \fB#include\fP-directive of the preprocessor. .NH 2 Substitution .PP Named processes are not textually substituted. A procedure call is used instead. The semantics of occam substitution imply this by letting a global variable (i.e. not declared inside the named process' body) be found where the named process is defined and not where it is substituted. .NH 2 ANY .PP According to the occam syntax the \fBANY\fP keyword may be the only argument of an input or output process. Thus, .DS .ft CW c ? ANY; x .ft .DE is not allowed. Because it was easy to add, and it was used by some programs, our compiler allows it. (If portability is an issue, usage of this feature is not advisable). .NH 2 Configuration .PP The special configuration keywords like \fBPLACED\fP, \fBALLOCATE\fP, \fBPORT\fP and \fBLOAD\fP are not implemented. Only \fBPRI\fP works because \fBPAR\fP and \fBALT\fP work the same without it.