
Jonathan Turkanis wrote:
Simon Buchan wrote: <snip>
Interesting: an 'abstract machine' representing the compiler is almost exactly the informal description used by version of the standard I saw
But it's not defined precisely enoung to be called 'formal' by my standards. Compare it with the definition of abstract state machines (http://www.eecs.umich.edu/gasm/), for example.
True.
Note that I'm not criticising the standard (although it certainly has some problems with lack of precision). It would be nice to have a truly formal specification, but in the case of C++ it's probably not realistic.
I do think it's possible (If it wasn't, we wouldn't be able to write compilers for it!), but remember the standard has basicly grown out of rewordings from the days of C (which did likewise back to B, etc...) I think a formal, but human-readable, grammar, kind of like EBNF for semantics, would be useful here. (From what I understand of ASM's, they are rather scary to read)