|[11 earlier articles]|
|Re: C as assembly language email@example.com (2001-04-12)|
|Re: C as assembly language firstname.lastname@example.org (felix) (2001-04-14)|
|Re: C as assembly language email@example.com.OZ.AU (2001-04-14)|
|Re: C as assembly language firstname.lastname@example.org (Randall Hyde) (2001-04-14)|
|Re: C as assembly language email@example.com (2001-04-15)|
|Re: C as assembly language firstname.lastname@example.org (Jim Granville) (2001-04-18)|
|Re: C as assembly language email@example.com (Joachim Durchholz) (2001-05-03)|
|Re: C as assembly language firstname.lastname@example.org (Joachim Durchholz) (2001-05-07)|
|Re: C as assembly language Hans_Boehm@hp.com (Hans Boehm) (2001-05-07)|
|Re: C as assembly language email@example.com (2001-05-13)|
|Re: C as assembly language firstname.lastname@example.org (David Thompson) (2001-05-15)|
|Re: C as assembly language email@example.com (2002-03-31)|
|From:||"Joachim Durchholz" <firstname.lastname@example.org>|
|Date:||3 May 2001 13:43:35 -0400|
|References:||01-03-006 01-03-046 01-03-130 01-04-027 01-04-047|
|Posted-Date:||03 May 2001 13:43:35 EDT|
Andreas Krall <email@example.com> wrote:
> "Joachim Durchholz" <firstname.lastname@example.org> writes:
> > Hmm... there are a few additional cases where C is simply
> > inappropriate: ...
> > 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
> Here you mix up the language definition of C with current
> implementions of C compilers.
This doesn't really make a difference if I select a backend.
Sure, I can restrict my language to a specific C implementation. But
that's exactly the type of restriction that will cripple a language.
> Some C compilers do not implement the above mentioned features, but
> many implement proper tail call recursion,
This does *not* help. Tail-call optimization removes a factor of N from
big-O complexities for many typical functional programs, and that's so
important that some languages even specify this optimization as
*required* for a valid implementation.
> ad 4) There is always the Boehm/Weiser GC
... which doesn't do finalization.
(Or does it?)
Return to the
Search the comp.compilers archives again.