Gregory Sereda wrote:
At 02:25 PM 8/14/98 -0700, Randall Gellens wrote:
2.11: I think the short-circuit evaluations do not need to be a MUST.
This isn't a language with pointers and variables, so there is no
danger of something like "if ( p != NULL && *p == 'c' )".
This depends on how we handle extensions. The MUST was correct for the
-03 draft when we had the "support" test. You could write something
like:
if allof ( support "newtest", newtest "arg" )
However, I agree that with draft -04, we should downgrade MUST to SHOULD
until we figure out how extensions will be supported.
Does leaving it at MUST cause problems for implementers? I think it would be
more difficult to make it a MUST later if it doesn't start that way.
The difficult part of extensions will be how a parser will deal with
"new control structures, actions, and tests" that have unknown syntax.
Perhaps the C language concept of "#ifdef" would be useful to bracket
a section of code that contains an extension.
Most languages that allow extensions either do so within the syntax of the
language, or via a metalanguage defined outside of the syntax of the
language.
An example of the former is doing operator overloading in C++ and Ada. No
language changes are needed to add new actions. However, the extensions are
limited.
Examples of the latter are the C preprocessor language and various C/SQL
preprocessors which all generate C as their output. That is, the extension
language gets first crack at the input, before passing it off to the
standard language.
Tony Hansen
tony(_at_)att(_dot_)com