D.2. Implemtentation Details

D.2.1. Numeric Types. See Section 4.1.

XGC Coral supports 16, 32 and 64 bit integer types, 16, 32 and 64 bit fixed point types, and 32 and 64 bit floating point types. The implementation defined keyword LONG is used to form LONG INTEGER, LONG FIXED and LONG FLOATING.

D.2.2. Meaning of Word-position. See Section 4.4.2.

XGC Coral allows table elements to extend over more than one word. Word-position always refers to the word in which the least significant bit is located.

D.2.3. Format of Code Statements. See Section 7.5.

In XGC Coral 66, a code statement follows the practice established for other programming languages. Each line of the code statement is an assembly language instruction, where the operands are references to Coral source objects. A full description will be found in Section 7.5.

D.2.4. Support for the COMMON Communicator. See Section 9.1.

COMMON Communicators are implemented as recommended. They are the primary means by which program segments communicate. Where the source text for a program is located across many files, it is usual for the COMMON Communicators to have their own files, which are then compiled along with the program segments by giving the file name on the compiler command line. Note: there is no include feature in Coral 66.

D.2.5. Support for the LIBRARY Communicator. See Section 9.2.

In XGC Coral, the library communicator is used to include a Coral source file that contains an external communicator that defines the data and procedures in a program library. It is typically used with standard libraries (an I-O library for example), but may be used with user-defined libraries too. The communicator is written LIBRARY ("filename"). The convention is for files used in this way to have the suffix ".h66" to indicate that they are Coral 66 files. For example, the file for the math library is called "math.h66", and is included by the statement LIBRARY ("math.h66").

D.2.6. Support for the EXTERNAL Communicator. See Section 9.3.

The EXTERNAL Communicator is supported as recommended. The form is similar to that of the COMMON communicator, but using the keyword EXTERNAL rather than COMMON. As an implementation-defined extension, the syntactic form Id / String is permitted so that linkage may be made to external symbols that are not acceptable as Coral identifiers.

D.2.7. Support for the ABSOLUTE Communicator. See Section 9.4.

ABSOLUTE Communicators are implemented as recommended. The syntactic form Id / Integer gives the address of the object identified by Id. On a byte-addressed computer, this is a byte address.

D.2.8. Length of identifiers. See Section 10.1.

XGC Coral permits identifiers of any length up to the length of a line. A compile-time option is provided to specify whether just the first twelve or all the characters are significant.

D.2.9. Binary Numbers. See Section 10.2.

Integers and floating point numbers may also be given in binary notation. The implementation defined keyword BINARY is used as a prefix, as in the following example: BINARY (1.0001). Note: binary floating point numbers cannot have an exponent.

D.2.10. Hexadecimal Numbers. See Section 10.2.

Integers and floating point numbers may also be given in hexadecimal notation. The additional digits that represent values 10 to 15 are represented using the letters 'a' to 'f', in lower case or in upper case. The implementation defined keyword HEX is used as a prefix, as in the following example: HEX (fff.8). Note: neither the octal nor hexadecimal number formats permit an exponent.

D.2.11. Literal Constants. See Section 10.3.

The numeric representation of characters in the LITERAL form, is determined by the host computer, and is assumed to be 7-bit ASCII. Non-printing characters, with the exception of the space character, are not accepted as literals. Note also the only one character is permitted between the parentheses.

D.2.12. The layout of strings. See Section 10.4.

The first character of each string contains the length of the string. The maximum length of a string is 255 characters.

D.2.13. The Macro Facility. See Section 11.2.

Macros are supported as described in Section 11.2. The macro body may be written over as many lines as necessary, and there is no limit on its size.