UP

Phenomena can be described at different levels of abstraction. For example, the “IBM System/370 Principles of Operation” {order number GA22-7000} describes certain computers from a level of abstraction appropriate for some programmers, but omits details of the implementation which might interest a field service engineer. Information for a field service engineer would omit detail that might interest a physicist.

This document is intended to be useful at many levels of abstraction. We omit all detail inside the kernel, that is, everything that happens in supervisor state. For those details, see (kernel-logic,). What remains is called the kernel level of description.

A level of description can be characterized by defining a set of keys that are to be considered irrelevant detail. A description at such a level would omit detail in any domain that has access to any key in the set, and treat the domain as a black box. The term “level” is not entirely appropriate because such sets of keys are not simply ordered in Gnosis.

{kernel}Some levels of description commonly used in this manual are defined here. Sometimes it is clear from context what level of description is being used. {Unfortunately, not always.}

Another level of description that is commonly used but does not have a name yet excludes the above keys and also all the keys in (p2,resprim).

In most cases the descriptions of keys are external specifications only. This means that the level of abstraction excludes any keys that are closely held by the implementation of the key.

Much of Gnosis programming consists of defining a key at one level and implementing it at a lower level.

A functional definition of a key must describe {at some level} the result of using the key in each of the two ways a key can be used, namely invoking it and passing it. To describe invoking a key is straightforward. How do we define the result of passing the key to all possible keys? We may not know about all the possible keys.

Instead we assume that each key defines the result of passing all possible keys to it. Why is this easier? And does this satisfy the requirements of level of description?