RE: [xsl] tail recursion optimization (was How efficient is DVC?)

Subject: RE: [xsl] tail recursion optimization (was How efficient is DVC?)
From: "Michael Kay" <mhk@xxxxxxxxx>
Date: Sun, 23 Mar 2003 23:44:17 -0000
> The problem that when the recursive template is a matching 
> template instead of a named template, it is hard for the 
> processor to recognize that the apply-templates at the end of 
> the template will result in the same template being applied. 
> For example, Robert's second example has this:
> 
>   <xsl:template match="group">
>     <xsl:copy>
>       <xsl:copy-of select="@*"/>
>       <xsl:copy-of select="./city"/>
>     </xsl:copy>
>     <xsl:apply-templates select="./group"/>
>   </xsl:template>
> 
> I don't know if any processors can optimize this. 

It's true that Saxon today only does tail-recursion optimization on a
self-recursive call-template instruction. In principle, however, any
call done as the last thing in a routine can be optimized in this way,
it doesn't have to be a self-recursive call. So it's quite possible in
principle to optimize this one even if you can't recognize it as being
self-recursive.

Michael Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread