An upper bound for delta is, for instance, the size of an interpreter
in language B for language A. But delta can be quite a lot smaller
than that.
Well. I think this sentence itself demonstrates how important
pragmatics of a programming language is. If I'm going to write an
ocaml interpreter in the lousy C language, which will be a HUGE code,
and then write my code in ocaml what's the point of using ocaml?
I don't think you can simply analyze this in terms of kolmogorov
complexity. Here, the claim is valid for reasonably written,
comprehensible, conventional programs, not theoretical curiosities
such as minimum program size for a given problem w.r.t. a formal
system.
What the above discussion implies, though, is that for VERY COMPLEX
CODES, you *will* have to develop your own appropriate languages and
down the ladder the most expressive or
human-cognitive-system-compatible language wins. I don't think that's
much of a discovery... So, why am I left puzzled?
I think my theory is that, you are wrong when you say "delta can be
quite a lot smaller than that". That's simply not true when you are
contrasting Java with ocaml *and* that interpreter size will be
enormous. (How so? ocaml is so much more than Java semantics-wise, you
would be stuck in mud trying to realize all of those mechanisms with
Java)
Now, why is this strange? Because I'm getting the feeling that your
claim contradicts some of the "power of expression" results that show
how much better a class-based programming language is compared to a
"flat" language (be it functional or imperative).
What you are missing is that's a minimum condition, and we can't know
in advance if we will be able to compress the code like that. In many
cases, I suspect you will find that the difference will actually be
greater than interpreter size.
Best Regards,
__
Eray Ozkural