Lists Home |
Date Index |
> The strong static typing may tell me, for instance, that a
> query is invalid
> because you can't multiply an integer times a URL
And what's more, it doesn't only tell you that the query is invalid: it can
give you information that enables the query to be optimized. To take an
example, consider the filter expression $a[expr]. This expression is
polymorphic - it has a different meaning depending on whether expr has a
boolean value or a numeric value, and the optimization opportunities are
very different for the two cases. If you know statically which case applies,
you can do much more effective optimization.
In fact, XPath 1.0 processors are likely to do this kind of static analysis,
even though the XPath 1.0 specification has no type system or formal
semantics worthy of the name. What the XQuery (=XPath 2.0) specification
does is to make this all explicit.