Philosophical musings: interpreting models
Jim Little
jiml@inconnect.com
Fri, 10 Sep 1999 00:44:00 -0600
Alaric Williams wrote:
>
> On Thu, 9 Sep 1999, Jim Little wrote:
>
> > Furthermore, I think high-level languages are preferable to high-level
> > libraries. The reason is that a compiler can't understand the semantics
> > of a library, but it CAN understand the semantics of a new keyword.
>
> What, though, about designing a very simple language of atomic constructs
> that can be easily theorised about etc. then defining a high level
> powerful standard library in terms of that, BUT make sure that smarter
> compiles can treat the standard library as special code generation cases
This is an interesting idea. The biggest disadvantage I see is that you
have to define those simple atomic constructs. What do you choose?
Whatever choice you make, you're going to influence the flavor of all
constructs that your system uses.
The advantage of allowing arbitrary new languages is that you can
support really weird ones. My personal favorite right now are the
purely functional languages in which code order doesn't matter, and
which compilers can automatically compile into concurrent code. And
there's Befunge, which I don't think could be accurately be simulated
with constructs any ANY other language. Befunge may be a toy, but it's
a good litmus test for language system flexibility.
(http://www.cats-eye.com/befunge/)
Another problem would be the optomizing compiler. It could get very
complex very quickly, resulting in an upper limit on new languages.
Still, I think this is an intruiging approach. I especially like the
"bootstrap right away and then optomize" part.
Jim