4 ms·
"The standard grammar doesn't need a frozen specification to be implemented, because its implementation is considered part of the spec." Huge step backwards in
by jmount 17y ago
"The standard grammar doesn't need a frozen specification to be implemented, because its implementation is considered part of the spec." Huge step backwards in semantics/specification.
- andreyf 17y agoIf I understand what he's saying correctly, it's quite the opposite: because of a frozen specification, Python needed to halt syntax changes [1] as secondary language implementations catch up. Perl 6, on the other hand, will never have this problem, as the standard grammar will be executable in the language itself. 1. http://www.python.org/dev/peps/pep-3003/ http://www.python.org/dev/peps/pep-3003/
- jmount 17y agoI don't agree. Python is also suffering from the "we don't need a specification because we have a reference implementation" problem. A very small part of the problem is mitigated if the reference implementation is frozen and is self-hosting (a plus). You really want something you can reason about, otherwise all you have is "that didn't work because the reference parser barfed" versus "you need a close brace."
- patrickmichaud 17y agoPerl 5 also suffers from the "reference implementation as specification" problem, which is why Perl 6 is actually being quite careful to avoid designating a "reference implementation". I think our (Perl 6's) notion of "standard grammar as specification" is more of a temporary designation than a permanent one. For now we need a rough guideline to follow when the prose description isn't matching the implementation, both of which are still undergoing a fair bit of revision and updating as we work through the implementation details. The ultimate arbiter in the Perl 6 specification is the official Perl 6 test suite (http://perl6.org/specification/ http://perl6.org/specification/), which is to be shared among all implementations. Basically, if something is to be considered "official Perl 6", it has to appear in the test suite, and any implementation that then passes the test suite is considered a valid Perl 6 implementation. Pm (Yes, the test suite is also evolving. But the test suite certainly gives us something that can be reasoned about without having to also adopt all of the quirks of a specific reference implementation.)