Re: questionable syntax choices for XQuery

Volkmann, Mark wrote:
> I dove into learning about XQuery this weekend.  While I like what I 
> see, I think some questionable syntax choices have been made.  Here are 
> three of them.
> 1) Why is a semi-colon required at the end of a user-defined function 
> defintion?  It's clear that the end has been reached when '}' is 
> encountered.  I don't see how requiring a terminationg ';' makes parsing 
> any easier.  This is a known gotcha in C++.  I hate to see XQuery borrow 
> a syntax feature that is already a known issue.

Hi Mark,

XQuery does not have reserved keywords. This makes parsing more 
difficult in general, and we want to have a general way to make it easy 
for the parser to spot the end of a declaration. Therefore, all 
declarations, including function signatures, end with semicolons. This 
is easier to remember than requiring semicolons for some declarations 
but not for others. It's a bit redundant, but you do get used to it.

> 2) Smilies are an odd choice for comment delimiters.  Why choose 
> something that isn't used by any other common programming languages?

/* Does this comment make you smile? */

(: This one does! :)

Seriously, we had to find a syntax that would be unambiguous in any 
context where a comment can occur - in a language without keywords. This 
worked. We tried many alternatives before arriving at this one. And yes, 
the cheerfulness of this syntax is a factor.

> 3) Why use ':=' in let clauses instead of simply '='?  You know an 
> assignment is coming because of the presence of the keyword 'let'.  I 
> don't see how '=' could be confused for meaning something other than 
> assignment in that context.

You are right, but some of us have a preference to use different 
operators for different functionality. I think this is largely a matter 
of taste.


Received on Wednesday, 21 April 2004 12:21:27 UTC