[Home] [By Thread] [By Date] [Recent Entries]


> Yes. Having a tool that can show you where you're eating 
> cycles is probably more useful day to day than an optimizing 
> compiler will ever be. Optimizing the compiler may be solving 
> the wrong problem: I don't need it optimized, I just need the 
> resource intensive bits pointed out to me.

It's probably possible to classify the rewrites that Saxon does into
three categories:

(a) a rewrite to an expression that the user could reasonably have
written themselves, for example:

    if (count(x) > 0)
becomes
    if (exists(x))

(b) a rewrite to an expression that the user could have written, but
which would damage readability, for example the pattern

    para[last()]
becomes
    para[not(following-sibling::para)]

(c) a rewrite to an expression that's not available in the surface
syntax at all, for example

    if(position()=last())
becomes
    if(not(hasNext()))

But in none of the examples above would I describe the user's original
expression as incorrect or in need of improvement.

(These are all rewrites that can be done without schema knowledge, of
course, because Saxon has no schema knowledge at present).

Michael Kay
Software AG
home: Michael.H.Kay@n...
work: Michael.Kay@s... 



Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member