xsl-list
[Top] [All Lists]

RE: Static type-checker

2005-11-18 08:36:29
It's doable, but not trivial. For example, in XSLT a circularity among
variables is a dynamic error rather than a static error. It's not a static
error to write

<xsl:variable name="x" select="$y/abc"/> 
<xsl:variable name="y" select="$x/abc"/> 

So static type checking that follows a chain of variable references would
need to look out for circularities.

Also, if one did such inferencing for variables, people would also expect it
to be done for functions. Functions are often recursive, in which case such
inferencing doesn't work.

One also has to be careful not to be too aggressive in type inferencing,
particularly with this situation where the expression is "void" (guaranteed
to return nothing) rather than actually being erroneous. I'm going to take
it cautiously to take advantage of user feedback as it comes.

Michael Kay
http://www.saxonica.com/

-----Original Message-----
From: drkm [mailto:darkman_spam(_at_)yahoo(_dot_)fr] 
Sent: 18 November 2005 14:44
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] Static type-checker

Michael Kay wrote:

  [ in addition to my previous reply, that
    I sent to quickly, sorry ]

Saxon will infer a type for the variable from
the select expression if it can do so without
contextual analysis, but it won't go chasing
around the houses to do it.

  Indeed.  But I think this case is intresting because it's 
simple and,
IMHO, entirely determinitic.  We have (in the variable's '@select') an
XPath expression like "$other/child/subchild", whose we know the type
of the variable "$other" (with its '@as'), and all the possible
children of "$other" are well known, as well as their types.

  I think it could be not so difficult to infer the type of the new
variable.  But I don't know enough all the aspects of the problem.  Is
there some complexity I don't see?  (I'm just curious)

  Thanks,

--drkm




















      

      
              
______________________________________________________________
_____________ 
Appel audio GRATUIT partout dans le monde avec le nouveau 
Yahoo! Messenger 
Téléchargez cette version sur http://fr.messenger.yahoo.com

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: 
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--





--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--