Kai Oliver Kaminski [EMAIL PROTECTED] wrote:
> What kind of dependency tracking would you need? Just within a single 
> page? For multiple pages? Send me use cases, tell me what you need.

I've been thinking about this a lot lately.

Mathematica seems to keep an array of input and output.  (In[] and
Out[]).  If we treat these as simple variables, dependency tracking
would be as simple as keeping a linked list among variables.  (e.g.
a "has" or "indeterminants" function)  In addition to that each variable
would need a "modified" flag.  Any time a "modified" flag is toggled,
axiom could traverse the dependency tree and mark outputs with a
"recompute" flag.

For example:

    (1) -> integrate(x+y^2*z, x)

               2    1  2
       (1)  x y z + - x
                    2
                                                Type: Polynomial Fraction 
Integer
Here (pseudo-code):
    in[1] = {
        value: "integrate(x+y^2*z,x)"
        indets: "y,z"
        modified: false
        recompute: false
    }
    out[1] = {
        value: "x*y^2*z+1/2*x^2"
        indets: in[1]
        modified: false
        recompute: false
    }

    (2) -> y:=3

       (2)  3
                                                            Type: 
PositiveInteger

Upon executing this, the code would search the dependency tree for
anything with "y" in "indets".  The "recompute" flag for in[1] would be
toggled, followed by the same flag for out[1].  Traversing the tree,
axiom should know to recompute in[1] (which puts its result in out[1]
and changes its recompute flag).  A user interface could choose to
highlight out[1] as needs-recomputing, or just go ahead and do it.
(spreadsheet-style)

--
Cheers,
Bob McElrath [Univ. of California at Davis, Department of Physics]

    "One of the best ways to get yourself a reputation as a dangerous citizen
    these days is to go about repeating the very phrases which our founding
    fathers used in the great struggle for independence." --Charles A. Beard

Attachment: signature.asc
Description: Digital signature

_______________________________________________
Axiom-developer mailing list
Axiom-developer@nongnu.org
http://lists.nongnu.org/mailman/listinfo/axiom-developer

Reply via email to