Go to the first, previous, next, last section, table of contents.


2.1 Viewpoint

Larch/C++ specifies C++ modules (see section 2.4 Modules and Files) from the point of view of clients. In general a module's client is some other C++ module, a piece of code. Sometimes we speak of a client as though it were the person writing that other piece of code.

Larch/C++ specifications are written from the viewpoint of a client; that is, they specify what interface and behavior a client sees. This is similar to most specification languages. However, Larch/C++ differs from most other specification languages in that, like C++, it distinguishes several different kinds of clients. Some clients have more access than others: these are subclasses (C++ derived classes), member functions of a class, and friends. Since friends can access all of the representation of a class, Larch/C++ allows one to specify three interfaces to each class, including private details (see section 2.2 Interfaces).


Go to the first, previous, next, last section, table of contents.