Re: C as assembly language

"Joachim Durchholz" <joachim_d@gmx.de>
3 May 2001 13:43:35 -0400

          From comp.compilers

Related articles
[11 earlier articles]
Re: C as assembly language vbdis@aol.com (2001-04-12)
Re: C as assembly language felixundduni@freenet.de (felix) (2001-04-14)
Re: C as assembly language fjh@cs.mu.OZ.AU (2001-04-14)
Re: C as assembly language rhyde@transdimension.com (Randall Hyde) (2001-04-14)
Re: C as assembly language vbdis@aol.com (2001-04-15)
Re: C as assembly language jim.granville@designtools.co.nz (Jim Granville) (2001-04-18)
Re: C as assembly language joachim_d@gmx.de (Joachim Durchholz) (2001-05-03)
Re: C as assembly language joachim_d@gmx.de (Joachim Durchholz) (2001-05-07)
Re: C as assembly language Hans_Boehm@hp.com (Hans Boehm) (2001-05-07)
Re: C as assembly language jthorn@galileo.thp.univie.ac.at (2001-05-13)
Re: C as assembly language david.thompson1@worldnet.att.net (David Thompson) (2001-05-15)
Re: C as assembly language thp@cs.ucr.edu (2002-03-31)
| List of all articles for this month |

From: "Joachim Durchholz" <joachim_d@gmx.de>
Newsgroups: comp.compilers
Date: 3 May 2001 13:43:35 -0400
Organization: Compilers Central
References: 01-03-006 01-03-046 01-03-130 01-04-027 01-04-047
Keywords: C
Posted-Date: 03 May 2001 13:43:35 EDT

Andreas Krall <andi@complang.tuwien.ac.at> wrote:
> "Joachim Durchholz" <joachim_d@gmx.de> 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?)


Regards,
Joachim


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.