A case against standards
Armin Rigo
arigo@tunes.org
Tue Nov 4 05:05:01 2003
Hello Fare,
On Tue, Nov 04, 2003 at 10:48:58AM +0100, Francois-Rene Rideau wrote:
> > One way might be to have the compiler build two programs, the other the
> > semantically sparse imperative binary and the other a program to map the
> > binary to the source code. A debugger made for specifically the program.
>
> Yes. That's exactly the kind of meta-level protocol
> that I propose in my thesis. Actually, it's a bit more subtle than that,
> since the "abstract interpreter" must map the *state* of the stopped
> *and synchronized* process running the compiled program into the abstract
> computation that has been declared.
Right. Although I was inspired by your models, mine don't reflect the dynamic
aspect. I want to avoid having to add it explicitely, externally. My point
of view is that if this aspect is relevant to a model, then anyone can
introduce the concept of "time" and relate it to the "process state" concept.
As far as I understand it, unlike you, I don't want to force any structure on
the "concepts", even a quite general one like that of category. I don't want
to impose anything specific on "operations" either, so it would be perfectly
acceptable for a model to describe destructive operations like running a
process or reading from a pipe, if the ambiant inference engine is aware of
that semantic. If, say, some engine is not aware of destructiveness, it will
not be aware of such operations at all and not be able to use it (it would be
a confusion-of-concept bug to write an engine as if "operation" meant pure
side-effect-free and use the same "operation" concept in models when the
operation is essentially side-effecting). Such an engine will for example run
conversion utilities with temporary files instead of pipes because it cannot
grasp the dynamic aspect involved in manipulating pipes. On the other hand,
an engine that knows about this aspect could work with it and other operations
like "advance to next synchronization point".
I still have to convince myself that I'm not missing something deeper here.
A bientot,
Armin.