The language requirements for a particular machine or particular classes of work, or generally for both, are not easily assessed. The richer the language, the larger the compiler may become, and the more difficult it may be to compile into efficient object-code. The balance between code efficiency and the human effort needed to attain it is not easy to strike. The objective of Coral 66 development has been to permit latitude, not in details, where there is little merit in diversity of expression, but in the presence or absence of major features such as RECURSIVE procedures, which may or may not be considered worth having. Other such major features are:
TABLE facility
FIXED numbers
BITS, DIFFER, UNION and MASK
FLOATING numbers
A full Coral 66 compiler handles all these features, but it would not normally be expected that a compiler for an object machine lacking floating point hardware should handle the FLOATING type of number. The use of additional features, not officially within the Coral 66 language, and not clashing with the official definition or with each other, may be approved for specific fields of defence work.