[plt-scheme] Re: [Larceny-users] side effects in R6RS modules
This makes a lot of sense.
As I teach my students, when you discover that a unit test fails,
you must consider one of three possibilities:
-- the unit is faulty
-- the expected outcome of the unit test is faulty
-- both are faulty.
This applies in language definitions, too, just more so.
On May 5, 2009, at 7:14 PM, hendrik at topoi.pooq.com wrote:
> On Tue, May 05, 2009 at 06:21:20PM +0300, Abdulaziz Ghuloum wrote:
>>
>> On May 5, 2009, at 5:44 PM, Matthias Felleisen wrote:
>>
>>> In PL, such questions should be decided via mathematical models that
>>> do not depend on machines and compilers. That's the only way to
>>> truly
>>> disambiguate the English in a spec.
>>>
>>> For whatever reasons, the editors moved the only piece of
>>> mathematics
>>> semantics (which doesn't include modules and macros) to the
>>> appendix,
>>> for reasons that still escape me. Well, they don't really. If you
>>> don't have a tool for arbitrating two distinct interpretations of
>>> an informal document, you can always claim that both are correct and
>>> if you so desire, you can claim one of them is, eh, smart? :-)
>
> Long ago, I chaired an ISO committee that issues a technical report to
> guide people devising programming language standards. We recommended
> that a language definition include both formal (mathematical) and an
> informal (natural language) definitions. The question came up
> which was
> to be authoritative in case of a conflict. The recommendation was
> that,
> in case of a conflict, the language definition should be deemed to
> have
> an error; said error should be resolved by whatever procedures
> would be
> invoked for any error in a standard.
>
> Thus the double definition is to be taken as a matter of
> redundancy, so
> that typos and such would be unlikely to change the language.
>
> -- hendrik
> _________________________________________________
> For list-related administrative tasks:
> http://list.cs.brown.edu/mailman/listinfo/plt-scheme