Related articles |
---|
Optimizing in assembly language rhyde@transdimension.com (Randall Hyde) (2001-03-01) |
Re: Optimizing in assembly language sunni@speakeasy.net (Shankar Unni) (2001-03-04) |
Re: Optimizing in assembly language sunni@speakeasy.net (Shankar Unni) (2001-03-26) |
C as assembly language joachim_d@gmx.de (Joachim Durchholz) (2001-04-04) |
Re: C as assembly language eodell@c1220335-a.potlnd1.or.home.com (2001-04-10) |
Re: C as assembly language andi@complang.tuwien.ac.at (2001-04-10) |
Re: C as assembly language jmorris2@twcny.rr.com (Morrisett) (2001-04-10) |
Re: C as assembly language jacob@jacob.remcomp.fr (jacob navia) (2001-04-10) |
Re: C as assembly language felixundduni@freenet.de (felix) (2001-04-10) |
Re: C as assembly language fjh@cs.mu.OZ.AU (2001-04-10) |
[13 later articles] |
From: | "Joachim Durchholz" <joachim_d@gmx.de> |
Newsgroups: | comp.compilers |
Date: | 4 Apr 2001 00:26:00 -0400 |
Organization: | Compilers Central |
References: | 01-03-006 01-03-046 01-03-130 |
Keywords: | C |
Posted-Date: | 04 Apr 2001 00:25:59 EDT |
Shankar Unni <sunni@speakeasy.net> wrote:
>
> The only place where it makes sense to do this is if you have to
> write snippets of code that either does not fit into a standard C
> model (usually interleaving assembly inside regular C code), or
> touches registers or other resources that fall outside the usual
> "registers and memory" model, *AND* and you want to be able to do
> at least some instruction rearranging around or even through the
> assembly code.
Hmm... there are a few additional cases where C is simply inappropriate:
1) You want to check for integer overflow.
2) You need exceptions.
Oh, and slightly off-topic, there are a few other things that annoy
those who want to use C as a backend for their compiler:
3) It has no support for tail call recursion.
4) It has no support for automatic garbage collection.
(The following are from http://www.cminusminus.org/faq.html:)
5) It cannot return multiple values in registers
6) It cannot bind global variables to registers
7) It has no support for lightweight concurrency
Not all of these features are required for each language, but many
(most?) languages need at least one of them.
Regards,
Joachim
Return to the
comp.compilers page.
Search the
comp.compilers archives again.