# Required interfaces

> C++ has a host of operators that will be explained if and where needed. ---The C++ Programming Language

There are several fundamental interfaces that every Modula-3 implementation must provide:

> `Text` provides operations on text strings.

> `Thread` provides synchronization primitives for multiple threads of control.

> `Word` provides operations on unsigned words.

> `Real`, `LongReal`, and `ExtendedReal` define the properties of the three floating point types; for example, their bases and ranges.

> `RealFloat`, `LongFloat`, and `ExtendedFloat` provide numerical operations related to the floating-point representation; for example, extracting the exponent of a number.

> `FloatMode` provides operations for testing (and possibly setting) the behavior of the implementation in response to numeric conditions; for example, overflow.

Implementations are free to extend the required interfaces, provided they do not invalidate clients of the unextended interfaces.

    Last modified on Tue Oct  3 17:26:49 PDT 1995 by heydon
         modified on Thu Jun  1 08:11:44 PDT 1995 by kalsow