Related articles |
---|
IL design? compilerguru@gmail.com (2006-12-11) |
Re: IL design? Juergen.Kahrs@vr-web.de (=?ISO-8859-1?Q?J=FCrgen_Kahrs?=) (2006-12-11) |
Re: IL design? bobduff@shell01.TheWorld.com (Robert A Duff) (2006-12-12) |
Re: IL design? Juergen.Kahrs@vr-web.de (=?ISO-8859-1?Q?J=FCrgen_Kahrs?=) (2006-12-13) |
Re: IL design? bobduff@shell01.TheWorld.com (Robert A Duff) (2006-12-14) |
Re: IL design? rsc@swtch.com (Russ Cox) (2006-12-14) |
Re: IL design? robert.hundt@gmail.com (Robert H) (2006-12-21) |
From: | Robert A Duff <bobduff@shell01.TheWorld.com> |
Newsgroups: | comp.compilers |
Date: | 14 Dec 2006 14:05:15 -0500 |
Organization: | The World Public Access UNIX, Brookline, MA |
References: | 06-12-049 06-12-052 06-12-053 06-12-054 |
Keywords: | optimize, design, comment |
Posted-Date: | 14 Dec 2006 14:05:15 EST |
Jürgen Kahrs <Juergen.Kahrs@vr-web.de> writes:
> The original poster asked for portability and efficiency. In this
> respect, C is a good choice.
For portability, I agree. For efficiency, well, two of the issues I
mentioned are efficiency issues (overflow detection, exception
handling based on PC maps). Both can be implemented straighforwardly
in C, but not efficiently. If the language you're compiling doesn't
need these things, then of course it doesn't matter. The OP didn't
say what the source language is.
>... If you ask for more (source-level analysis, exception handling),
>then there might be other ILs that provide more than C. But are the
>other ILs good at portability and efficiency ?
I don't know.
There's C-- (pronounced "C minus minus"), which is intended to be
generated by compilers for high level languages. It's not an assembly
language either (according to the definition I gave ;-)), but the
design seems superior to C for this purpose. I don't know if it's
widely available for obscure machines (C certainly is).
There's Java byte codes. That gives the portability half, but I'm not
so sure about efficiency.
- Bob
[Quite a few years ago at Bell Labs there was a language called LIL,
intended to be lower level and closer to the hardware than C, and
therefore producing better code. They found that every time LIL
seemed to be doing better than C, they could just tweak the C
compiler's code so eventually LIL was seen to be pointless. -John]
Return to the
comp.compilers page.
Search the
comp.compilers archives again.