Labeling mechanism Sample Clauses
Labeling mechanism. The programming language Japl does not provide language constructs for stat- ing the expectation of a certain incoming communication at a certain point of the program execution. The specification language in contrast provides special expectation statements for this purpose. Recall that the introduction of incoming call statements entails a relaxation of the strict sequential control-flow policy, as these statements are to be processed after realizing an outgoing communication. In Japl an outgoing communication always leads to a control context, where the execution of a statement is impossible as the Japl program is blocked until an in- coming communication occurs. Thus, to stress this specific feature of specification statements that are executed between an outgoing and an incoming communica- tion we introduced the notion of a passive control context in Section 3.3 and we, correspondingly, called these statements passive statements. Further, recall that apart from incoming call statements we additionally allow while-loops and condi- tional statements to appear in a passive control context, in order to increase the expressiveness of the specification language. In particular, the introduction of passive while-loops and conditional state- ments leads to a dynamic evaluation of the incoming communication expecta- tions. That is, the next expected incoming communication is determined at run- time, possibly depending on previous incoming values. This is the basic language 1The satisfiability requirement demands an outgoing call statement to occur between the outer and the inner incoming call statement. Though, the outgoing call does not play a role in this example. disparity that we have to overcome if we want to generate a proper test program in Japl that results from a specification of the test specification language. Our first step on the way to the test program is to introduce the basic frame- work for ensuring that the external steps carried out by the final test program will occur in the same order as stipulated in the specification. To this end, we tag all incoming communication terms of the specification with a unique identifier. We will use these ids in the final test program in order to match the interface communication steps that occur during the test execution with the corresponding communication statements of the specification. Moreover, the labeling mechanism will enable us to dynamically determine the next expected incoming communi- cation witho...
