Chapter 1
Types of Diagrams for Representing Structures of Cooperative Systems
= Fundamental Modeling Concepts (FMC)



Home
1.1
Two
Problems
1.2
Concept
of the
Solution
1.3
Composition-
Diagrams
1.4
Process-
Diagrams
1.5
Data-
Structure-
Diagrams
1.6
Metadiagram
of the FMC-Diagrams
1.7
Layering of
Interpreters
1.8
Separation
of Phases

1.7 Layering of Interpreters

Distinguishing between a role and its interpreter

Software is not a dynamic system, but a static structure of symbols. In order for an agent to be created, the software must be interpreted and executed by a technical system. This is analogue to an actor playing a certain role. But here we want to abstract from the fact that the role is played by a human actor; therefore we say that the role is played by an appropriate interpreter.

Now, however, an interpreter itself can be implemented as a software-defined system. In this case, there must be an interpreter software which is interpreted and executed by its own interpreter. Of course, this interpreter again can be implemented as a software-specific system, whereby a further interpreter is added. In this way, one can build a system of layers of interpreters. The top layer is the originally wanted role system, and the bottom layer must be an interpreter which is real "hardware" - man or machine. On the intermediate layers there are systems, which are role systems when viewed from below, and interpreters when viewed from above.

The fact that such systems of layered interpreters can be built is presumably easy to see. But there remains the question what the benefits of such a stratification could be. In order to get closer to the answer, an illustrative example of a system of layered interpreters is now considered.

The example is about the musical "Kiss me Kate" by Cole Porter. A central figure in this musical is Fred Graham, who is played in the movie by Howard Keel. Fred Graham is an actor and leads a theater group performing the play "Taming of the Shrew" by William Shakespeare. The theater group gives performances in various cities in Northern Italy. A central figure in "Taming of the Shrew" is Petruccio, who in the musical is played by Fred Graham. Thus, the entire system consists of three layers: The bottom layer is Howard Keel, who is an interpreter "in hardware"; the layer in the middle, viewed from below, is the role system Fred Graham, and viewed from above, it is the interpreter of Petruccio; the top layer is the role system Petruccio.

In the composition diagram on the left, there are three nested agents and three nested action fields. The nesting order of the agents is reverse to the nesting order of the action fields. In the group of the nested agents, Petruccio forms the outer box, and Howard Keel the inner-most box. Fred Graham lies in between. In the group of action fields, that of Howard Keel is the biggest and contains that of Fred Graham while the action field of Petruccio is the smallest and lies entirely within. The description of the role of Petruccio, the "software" written by Shakespeare, lies not only in the action field of Fred Graham but also in the action field of Howard Keel. In his action field we also find the description of the role of Fred Graham, the "software" written by Cole Porter, because Howard Keel had to memorize both roles.


If it had only been to play the Petruccio, there would have been no reason to invent the role of Fred Graham. But Fred Graham is not only an interpreter of the role of Petruccio, but as a director of a theater group, he also has an interesting life for the audience. Thus, a system with layered interpreters makes sense only if the additional interpreters above the bottom layer do not only act as interpreters, but perform actions that go beyond the actions of the role system in the top layer. Therefore, the planning of a particular system of layered interpreters does not begin with the specification of the role system on the top, but starts with the interpreter at the bottom. From there, the layering is planned from the bottom to the top, whereby in each case it is determined which functions of the overall system are to be implemented in which layer.

The example makes it comprehensible that a system realized in the form of layered interpreters must not be described as a whole; it is sufficient to describe each layer independently of the others. In the description of the role of Petruccio one does not have to refer to the role of Fred Graham and also not to the actor Howard Keel. And so can one describe the role of Fred Graham without mentioning the fact that he will be once played by Howard Keel.


Now, an example of a system of layered interpreters is considered, where the interpreter at the bottom is actually a computer. The diagram shows the system not in the form of a composition diagram but as a stack of layers. It is self-evident that those who design the computer do not need to know which software this computer later will have to execute. Only the language must be determined in which the roles shall be formulated which this computer shall be able to interpret. The same applies to the next two layers: The designers of the operating system must not know that a software of a universal control framework will be added later, and those who are designing this framework do not need to know that a software for controlling a funicular will be installed on this framework. Since this example is a system which has actually been implemented and put into operation, I could name the four companies each of which has implemented one of the four layers independently of one another. The company which has built the universal control framework, has been able to offer this to all companies that have to implement concrete control systems. These then only had to place their special control software on the given stack of three layers which requires much less effort than if they had to design and implement the entire software directly for the computer.


to the top