XSLT’s roots are in Lisp and Scheme, so while it’s Turing Complete, things such as looping are non-trivial. The standard solution to this is recursion. However recursion has its costs, such as clobbering all the memory.
A group of XSLT developers have been active on the XSLT list, working on ways to use recursion without eating memory or crashing the XSLT processor. They developed a class of two-stage algorithms which break problems down into managable sets that avoid deep recursion, and are manyfold faster than straight recursion.
Why does this matter? In XML-Based databases, XSLT transforms play the role of stored SQL proceedures, and these techniques are required for operations such as sums and products.
Possibly Related posts (machine generated):