Re: DSSSL side effect-freeness

Subject: Re: DSSSL side effect-freeness
From: Paul Prescod <papresco@xxxxxxxxxxxxxxxx>
Date: Tue, 27 Jan 1998 18:43:47 -0500
Frank A. Christoph wrote:
> 
> I know we have been over this issue before, but would somebody please
> reiterate the reason that the DSSSL expression language must be side
> effect-free?  It seems very odd to me that a language which has been so
> conscientiously purged of side effects is nevertheless call-by-value.

Do you really mean call-by-value and not "eager" vs. "lazy?"
Call-by-value and call-by-reference are identical in the absence of
mutability.

> I
> have mentioned before that, although DSSSL is side effect-free, it is not
> "read effect-free", since there are procedures whose result depends on the
> context, e.g., current-node, process-children.  Is the CBV behavior
> necessary in some way to allow lazy grove implementations?  What about the
> so-called side effect-freeness?

Think about a grove that is 5GB large and distributed across many
machines. Now you want to format a single paragraph. Under the DSSSL
model, you must ask the other machines about the various parts of the
grove, but you do *not* have to apply the entire stylesheet to the
entire grove.

At most you must apply the construction rules for the element and those
of its ancestors. So you must build the whole grove (typically), but you
need not apply the whole stylesheet to it. In a WYSIWYG system where you
might want to look at a single page of a multi-gig document, that might
make a big difference.

 Paul Prescod
--
"You have the wrong number."
"Eh? Isn't that the Odeon?"
"No, this is the Great Theater of Life. Admission is free, but the 
taxation is mortal. You come when you can, and leave when you must. The 
show is continuous. Good-night." -- Robertson Davies, "The Cunning Man"



 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread
  • DSSSL side effect-freeness
    • Frank A. Christoph - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id AAA21877Tue, 27 Jan 1998 00:01:20 -0500 (EST)
      • G. Ken Holman - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id JAA00629Tue, 27 Jan 1998 09:44:17 -0500 (EST)
        • Harald Hanche-Olsen - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id QAA03547Tue, 27 Jan 1998 16:26:24 -0500 (EST)
          • Paul Prescod - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id TAA10715Tue, 27 Jan 1998 19:42:59 -0500 (EST)
      • Paul Prescod - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id TAA10659Tue, 27 Jan 1998 19:42:27 -0500 (EST) <=
      • <Possible follow-ups>
      • Frank A. Christoph - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id AAA12305Wed, 28 Jan 1998 00:06:25 -0500 (EST)
        • Pierre Mai - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id OAA22416Wed, 28 Jan 1998 14:15:53 -0500 (EST)
        • Paul Prescod - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id RAA24174Wed, 28 Jan 1998 17:19:24 -0500 (EST)
      • W. Eliot Kimber - from mail1.ability.netby web4.ability.net (8.8.5/8.6.12) with ESMTP id OAA23003Wed, 28 Jan 1998 14:56:26 -0500 (EST)