[
Lists Home |
Date Index |
Thread Index
]
> 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@ntlworld.com
work: Michael.Kay@softwareag.com
|