EXPRESS 1.0 FTF Avatar
  1. OMG Issue

EXPRESS_ — Incorrect model of AggregateInitializer

  • Key: EXPRESS_-57
  • Legacy Issue Number: 13703
  • Status: closed  
  • Source: Thematix Partners LLC ( Mr. Edward J. Barkmeyer)
  • Summary:

    In 12.9, AggregateInitializer, Figure 40, the use of ListMember is wrong. A MemberBinding in an AggregateInitializer binds to a virtual "slot" in a virtual GenericAggregate. It does not bind to a ListMember of a specific LISTValue until it is evaluated in a particular runtime occurrence. (For example, the same initializer could produce different values if it occurs within a REPEAT statement and some member-value expression depends on the control-variable.) So the model in Figure 40 is incorrect. MemberBinding:to-slot is not a ListMember. It is a GenericMember of "generic aggregate", which refers to the result of the AggregateInitializer itself. In the metamodel, each other Expression class denotes the abstraction of its evaluation – we don't explicitly model the result instance. So GenericAggregate, if that is what it models, is not an Instance; it is the abstract result of the AggregateInitializer. Each actual result value is an AggregateValue, but not necessarily a LISTValue.

  • Reported: EXPRESS 1.0b1 — Thu, 12 Mar 2009 04:00 GMT
  • Disposition: Resolved — EXPRESS 1.0
  • Disposition Summary:

    The use of ListMember is wrong – the MemberBinding binds a member-value Expression to a virtual slot, not to an actual slot in a ListValue. The association MemberBinding:to-slot should be removed from the model.
    There is no need to model the “GenericMember”, since its properties may be totally dependent on the evaluation of RepeatCounts.
    According to ISO 10303-11 (clause 12.9), the nature of the Instance that is the evaluation of the AggregateInitializer Expression is a value of type AGGREGATE OF GENERIC. The class GenericAggregate models that concept, as specified in 9.4.6.

  • Updated: Wed, 11 Mar 2015 01:53 GMT