Executable specifications (was: Re: reviving the file URI scheme)

On 2013/12/13 11:48, Marcos Caceres wrote:

> On Friday, December 13, 2013 at 12:46 PM, John Cowan wrote:
>
>> Marcos Caceres scripsit:

>>> On Friday, December 13, 2013 at 12:43 AM, John Cowan wrote:
>>>
>>>> It's in his bibliography. But like most (all?) WHATWG products, it is a
>>>> reference implementation, not a standard.

>>> I think you might be confused: a browser is a reference implementation
>>> (in that you can reference it as attempting to implement a standard); a
>>> standard is a technical specification that has multiple implementations
>>> and is overseen by a standardization authority (in this case, the
>>> WHATWG).

>> A reference implementation is an implementation that itself constitutes the
>> standard; if you want to know what the standard prescribes, you fire up
>> the implementation and try it. WHATWG standards are written in code
>> (it would be perfectly feasible to write a compiler for it), and that's
>> why they are reference implementations.
>>
>
> I don’t understand what you mean by they are written in code?

I can't speak for John, but I think what he means is that WHATWG specs 
are written in a kind of quite formal, pseudocode-like language.

I also had the idea that it should be possible to analyze this 
pseudocode and do something with it (e.g. find inconsistencies,...), and 
was thinking of e.g. propose this as a project to a student of mine

But my current thinking is that like the original 1950s claims of 
machine translation being a solved problem within three to five years, 
claims like "it would be perfectly feasible to write a compiler for it" 
are mainly based on the fact that we all tend to underestimate the 
complexity of human language. So any research project I'd start 
currently would at this stage be more focused on exploring the limits 
and irregularities of the language used in the WHATWG (and related W3C) 
specs rather than aiming at making them executable.

Regards,   Martin.

Received on Friday, 13 December 2013 09:00:55 UTC