Chapter 9. Communicators

Table of Contents
9.1. COMMON Communicators
9.2. LIBRARY Communicators
9.3. EXTERNAL Communicators
9.4. ABSOLUTE Communicators

The segments of a program may communicate with each other through COMMON (see Section 9.1 below), and with objects external to the program by means of communicators such as LIBRARY, EXTERNAL or ABSOLUTE, as defined in particular implementations.

9.1. COMMON Communicators

Global objects declared within a program (see Section 3.3) are communicated to all segments through a COMMON communicator. This consists of a list of COMMON items separated by semi-colons all within round brackets following the word COMMON. Such items are of three kinds, corresponding to division of objects into data, places and procedures. A COMMON data item is a declaration of the identifiers listed within it, exactly as in Chapter 4, storage being allocated as in Section 4.5, presets an overlays as in Section 4.6 and Section 4.8. Communication of places and procedures takes the form of specification, as in the equivalent parameters of a procedure declaration (Section 8.3.3 and Section 8.3.4). For each identifier specified in a COMMON communicator, there must correspond an appropriate declaration (or for labels a setting) in one and only one outermost block of the program. The syntax is

Commoncommunicator ::= 
     COMMON (  Commonitemlist ) 

Commonitemlist ::= 
     Commonitem
     Commonitem ;  Commonitemlist 

Commonitem ::= 
     Datadec 
     Overlaydec 
     Placespec 
     Procedurespec 
     Void 

Placespec ::= 
     LABEL  Idlist 
     SWITCH  Idlist