Subject: Re: XSLT use cases; data-centric todocument-centrictransformations
From: Dimitre Novatchev <dnovatchev@xxxxxxxxx>
Date: Wed, 9 Feb 2005 06:09:36 +1100
|
On Tue, 8 Feb 2005 15:25:50 +0100, Peter Gerstbach <peter@xxxxxxxxxxxx> wrote:
> Quoting Michael Kay <mike@xxxxxxxxxxxx>:
>
> > In Saxon 8.2 a sequence of 500 sibling instructions will in fact compile to
> > the same code as the XPath expression (a1, a2, a3, ... a500), which is
> > actually handled as (a1, (a2, (a3, (a4, ...))) and therefore does indeed
> > make excessive use of stack space. This will be fixed next time around,
> > although it's very rare that it causes a problem since you rarely see
> > sequences of more than 5 sibling instructions.
>
> Thanks for this explanation. Now I know how to avoid this stack
> overflow, and as
> you stated, this amount of siblings is in fact rare.
In any language a subroutine or a method of this size is not
recommended as a good programming practice. As a rule, the code of a
method should fit on a single page.
With larger methods there are almost surely unnoticed bugs due to
difficulties in understanding and due to poor maintainability.
Of course, some people do write very long methods -- I have seen a
method, whose code occupied 29 printed pages. With such a beast the
question "What does this method do?" becomes very difficult to answer.
Cheers,
Dimitre Novatchev.
|