Re: questionable syntax choices for XQuery

Jonathan Robie <[email protected]>
Newsgroups gmane.comp.web.query-languages
Message-ID <[email protected]>
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.

Jonathan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.