|[noga2003lazy]||Steffen Schott, Markus L. Noga, Lazy XSL Transformations, DocEng 2003, ACM Press, Nov 2003.
We introduce a lazy XSLT interpreter that provides random access
to the transformation result. This allows efficient pipelining of
transformation sequences. Nodes of the result tree are computed
only upon initial access. As these computations have limited
fan-in, sparse output coverage propagates backwards through the
In comparative measurements with traditional eager
implementations, our approach is on par for complete coverage and
excels as coverage becomes sparser. In contrast to eager
evaluation, lazy evaluation also admits infinite intermediate
results, thus extending the design space for transformation
To demonstrate that lazy evaluation preserves the semantics of
XSLT, we reduce XSLT to the lambda calculus via a functional
language. While this is possible for all languages, most
imperative languages cannot profit from the confluence of lambda
as only one reduction applies at a time.