Re: [PHP-LANG] Approaching the First Draft [of a language spec]
[email protected] (Zeev Suraski)
| Newsgroups | php.dev,php.lang |
|---|---|
| Message-ID | <[email protected]> |
I tend to agree with everything Rasmus said here.
Zeev
At 03:27 21/11/2000, Rasmus Lerdorf wrote:
>The way I see this actually working is that someone sits down and writes a
>first draft of this thing. Probably quite incomplete, but at least it
>will lay out the framework. From there we complete it as a group.
>
>Historically not too many things have been accomplished through concensus
>and voting and whatever other structure you might put in place. You need
>to start with some sort of base usually hammered out by either a single
>person or a very small group.
>
>At this point I would prefer to see someone like Sascha just sit down and
>write this base document. It should be a complete and unambiguous
>language spec using some sort of established language description syntax.
>However, it should also include mere-mortal interpretation hints.
>Something like the following. I am using BNF since that is what I am
>familiar with, but there might be some better alternatives. I think the
>important part is to have the combination of the rigid definition of
>something like BNF combined with the user-friendly explanation and example
>text:
>
> <while-statement> ::= while ( boolean_expr ) [ statement_sequence ] |
> [ : statement_sequence
> endwhile ]
>
> The while statement has two syntactical variations. The first and most
> traditional is a simple statement sequence:
>
> while( $a > 1 ) $a = 0;
>
> Remember that statement sequences can contain multiple statements inside
> braces, so the following is also a valid syntax for the while statement:
>
> while( $a > 1 ) { $a = 0; $b = 0 }
>
> The second variation is a carryover from the early days of PHP and it is
> still used today as it makes reading code containing large blocks of raw
> HTML easier on the eyes:
>
> while( $a > 1 ): $a = 0; endwhile;
>
> Again, multiple statements are valid:
>
> while( $a > 1): { $a = 0; $b = 0; } endwhile;
>
> This syntax has implied statement grouping which means it is valid to
> drop the braces around the statement sequence:
>
> while( $a > 1): $a = 0; $b = 0; endwhile;
>
> And finally, what this syntax was intended for:
>
> <?php while( $a > 1): ?>
> <B>Block of raw HTML</B>
> <?php endwhile ?>
>
>
>-Rasmus
--
Zeev Suraski <[email protected]>
CTO, Zend Technologies Ltd. http://www.zend.com/