- Contemporary messages sorted: [ by date ] [ by thread ] [ by subject ] [ by author ] [ by messages with attachments ]

From: Michael Hanus <mh_at_informatik.uni-kiel.de>

Date: Tue, 30 Oct 2007 17:02:42 +0100

Sergio Antoy wrote:

*> A semantics is good and it should be a part of the Report or it
*

*> should be referenced by it. However, an intuitive less formal
*

*> explanation is also quite desirable. I think that a formal
*

*> semantics should go in an appendix, but the language features
*

*> should be presented more or less as they are now. Thus, the
*

*> problem will not go away by adding a formal semantics. There
*

*> should be an attempt to exaplain the behavior in English.
*

Yes, I agree and thanks for the feedback.

*> Note, that if x were shared in (1+x ? zero x where x free) then
*

*> there would be no problem. The current explanation is OK. This
*

*> may be inconsistent with current implementations (and perhaps
*

*> difficult to implement), but it is conceptually simpler. It is
*

*> also more general, since the programmer can code (1+x ? zero y
*

*> where x,y free) if sharing is not intended.
*

I think that the simple explanation "several occurrences

of the same variable are always shared" needs more context

information, i.e., the sharing is done only in the expression

under evaluation (and not between different disjuncts of a

disjunctive expression). Thus, x is shared in the expression

(1+x ? zero x). However, if x is instantiated by evaluating

(zero x), then the expression (1+x ? zero x) has been reduced

to (zero x), otherwise (zero x) is not evaluated w.r.t.

the current definition of the operational semantics.

Of course, the expression (1+x ? zero x) can be also reduced

to (1+x) but then (1+x) and (zero x) are two independent

expressions without any sharing of x.

*> Is there a clear reason why x should NOT be shared across the
*

*> arguments of (?), but must be in any other situation?
*

Intuitively, sharing must be kept as long as the different

subexpressions belong to one expression. Thus, x is shared

in (1+x ? zero x) as long as you don't evaluate the (?).

However, if you evaluate (?), the complete expression

is reduced to the left OR right expression so that

the connection between both have been dropped.

Best regards,

Michael

_______________________________________________

curry mailing list

curry_at_lists.RWTH-Aachen.DE

http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry

Received on Di Okt 30 2007 - 17:04:04 CET

Date: Tue, 30 Oct 2007 17:02:42 +0100

Sergio Antoy wrote:

Yes, I agree and thanks for the feedback.

I think that the simple explanation "several occurrences

of the same variable are always shared" needs more context

information, i.e., the sharing is done only in the expression

under evaluation (and not between different disjuncts of a

disjunctive expression). Thus, x is shared in the expression

(1+x ? zero x). However, if x is instantiated by evaluating

(zero x), then the expression (1+x ? zero x) has been reduced

to (zero x), otherwise (zero x) is not evaluated w.r.t.

the current definition of the operational semantics.

Of course, the expression (1+x ? zero x) can be also reduced

to (1+x) but then (1+x) and (zero x) are two independent

expressions without any sharing of x.

Intuitively, sharing must be kept as long as the different

subexpressions belong to one expression. Thus, x is shared

in (1+x ? zero x) as long as you don't evaluate the (?).

However, if you evaluate (?), the complete expression

is reduced to the left OR right expression so that

the connection between both have been dropped.

Best regards,

Michael

_______________________________________________

curry mailing list

curry_at_lists.RWTH-Aachen.DE

http://MailMan.RWTH-Aachen.DE/mailman/listinfo/curry

Received on Di Okt 30 2007 - 17:04:04 CET

*
This archive was generated by hypermail 2.3.0
: Do Jun 20 2024 - 07:15:09 CEST
*