If the runtime system in the meta-level receives a generic procedure call from the application, it obtains the information about the current environment from the OS, evaluates the information based on a built-in adaptation strategy and selects the suitable method. The method is sent back to the application and executed on the base-level.
The runtime system can detect changes in the environment and informs the application by asynchronous events. Generic procedure calls are associated with those events and enable the application to react on a changed environment. The environment is described by environmental elements which are an abstraction of the environment. LEAD provides a fixed set of basic environmental elements:
A function is associated with each environmental element and is executed by the runtime system determining the state of the environmental element. Based on the built-in elements new environmental elements can be constructed on a higher abstraction level.
The definition of a method contains a list of conditions referring to states of environmental elements. The list is evaluated by the runtime system and the result of the evaluation determines the selection of the method.
How the list of conditions is evaluated is defined by the adaptation strategy . The goal of the evaluation is to determine a suitable method for the environment. By default the simple strategy is applied which evaluates the condition list with AND and OR s. If this strategy fails, the priority strategy is applied, which evaluates the conditions according to the priorities associated with them.
The LEAD approach can not fulfill two requirements defined in section . The requirement R1 which interdicts a meta language for dynamic adaptation is violated by LEAD. LEAD presents an extension of Scheme in order to define adaptable procedures. This would involve a new programming language into the development of an application for using adaptation.
The second violation of a requirement is a consequence of the first. The definition of adaptable procedures as string variables in Scheme , prevents that the adaptable methods are syntax-checked during compilation time and runtime errors may occur during their interpretation at runtime. The purpose of R4 is to avoid such a situation.
Due to the listed reasons it is not desirable to use LEAD for dynamic adaptation.