The Type System A traitor is an entity that statically is declared as non-separate, but during execution can become attached to a separate object. Consistency Rules The rules Prevent almost all traitors and are easy to understand. Are too restrictive, don’t support agents and there is no soundness proof. The Type System of SCOOP We use the following notation: , where Attachable/detachable, Processor tag, is the current processor is some processor (top) is no processor (bottom) Ordinary type Examples We have the following subtyping rules Conformance on class types are like in Eiffel, essentially based on inheritance: Attached detachable: ≤ Any processor tag : ≤ In particular, non-separate : ≤ any processor tag: ≤ Feature call rule An expression of type is called controlled if and only if is attached and satisfies exp exp any of the following conditions: is non-separate, i.e., exp
The Type System A traitor is an entity that statically is declared as non-separate, but during execution can become attached to a separate object. Consistency Rules The rules Prevent almost all traitors and are easy to understand. Are too restrictive, don’t support agents and there is no soundness proof. The Type System of SCOOP We use the following notation: , where Attachable/detachable, Processor tag, is the current processor is some processor (top) is no processor (bottom) Ordinary type Examples We have the following subtyping rules Conformance on class types are like in Eiffel, essentially based on inheritance: Attached ≤ detachable: Any processor tag ≤ : In particular, non-separate ≤ : ≤ any processor tag: Feature call rule An expression exp of type is called controlled if and only if exp is attached and satisfies any of the following conditions: exp is non-separate, i.e.,
ccc-src.docx