Hi Tej,
I think that in this case the restriction is correct, but the text that
states that "The parameter defined by a replicator is considered a static
variable" should be changed.
Your question underlines a general problem that exists in the "Replicated
properties" section. The current text does not clarify two important
points:
(1) An implementation of "forall" might not actually replicate the
property. It is sometimes more efficient to implement "forall" differently,
and this should be allowed.
(2) As a result of the previous point, the replicator parameter cannot
really be considered to be a static variable. On the other hand, it's not
really a dynamic variable either. I think the text should not try to
categorize the replicator parameter, but should define its allowed behavior
by listing the restrictions. These specify which behavior must be supported
by all implementations, and which behavior should not be allowed.
The specific restriction that you mention is important if we wish to allow
non-replicating implementations.
I hope that the LRM committee will succeed in rewriting this section so
that it more clearly reflects the intent of the language definition.
Regards,
Avigail
_______________________________________________________
Avigail Orni
Verification and Testing Solutions Group
IBM Haifa Research Laboratory
Phone: 972-4-829-6396 email: ornia@il.ibm.com
owner-ieee-1850@eda.org wrote on 14/10/2004 21:03:22:
> Hi All,
>
> One of the illegal example in 'Sec 6.2.3 Replicated properties' is
>
> forall j in {0:7}:
> forall k in {0:j}:
> f(j,k)
>
> I fail to understand why this example is illegal. Probably because a
> replicator parameter is used in the Value range of the nested replicator.
> But nowhere does the LRM say that this is illegal. Per LRM
>
> "If a Range is used to specify a Value Range, the Range shall be a
> finite Range, each bound of the Range shall be statically
> computable, and the left bound of the Range shall be less than or
> equal to the right bound of the Range."
>
> A replicator parameter is static variable. Thus {0:j} satisfies the
> restrictions on value range.
>
> Should this example be removed from the LRM?
>
> Regards
> Tej
>
Received on Mon Oct 18 04:25:05 2004
This archive was generated by hypermail 2.1.8 : Mon Oct 18 2004 - 04:25:22 PDT