Path: utzoo!dptcdc!jarvis.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!rutgers!columbia!read.columbia.edu!kearns From: kearns@read.columbia.edu (Steve Kearns) Newsgroups: comp.lang.c++ Subject: Re: C++ --> C Message-ID: <6293@columbia.edu> Date: 18 Apr 89 15:02:26 GMT References: <173@cs.columbia.edu> <7050005@hpcupt1.HP.COM> <9204@alice.UUCP> <5408@videovax.tv.Tek.com> Sender: news@columbia.edu Reply-To: kearns@read.UUCP () Organization: Columbia University Department of Computer Science Lines: 21 One of Bjarne's stated principles with C++ was: (*) When faced with the possibility of making the language (and manual) simpler by making the compiler more complicated, do it. While I think that compiling to C is a fine idea, ATT cripples the idea by requiring the translation to take place in a "close to recursive" way. Specifically, every C++ statement must translate into an equivalent C statement. (This was reported by Andrew Koenig at a talk here). The upshot of this design desicision is that instead of using C as a fancy assembly language, ATT is trying to write a "simple" translator to C. This is a bad decision, and goes against the priniciple outlined above. An example of this is their implementation of inline functions, which inlines functions EXCEPT IF THINGS GET A LITTLE COMPLICATED. So, I would suggest keeping the c++ -> c translation, but using c as an assembly language instead of using "recursive translation".