From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: *** X-Spam-Status: No, score=3.8 required=5.0 tests=BAYES_00,INVALID_MSGID, RATWARE_MS_HASH,RATWARE_OUTLOOK_NONAME autolearn=no autolearn_force=no version=3.4.4 X-Google-Language: ENGLISH,ASCII-7-bit X-Google-Thread: 1014db,dab7d920e4340f12 X-Google-Attributes: gid1014db,public X-Google-Thread: 103376,dab7d920e4340f12 X-Google-Attributes: gid103376,public From: "Tim Behrendsen" Subject: Re: C is 'better' than Ada because... Date: 1996/07/27 Message-ID: <01bb7bfc$3c5ca460$96ee6fcf@timhome2>#1/1 X-Deja-AN: 170481856 references: <31e02c32.342948604@netline-fddi.jpl.nasa.gov> <4rr961$hdk@btmpjg.god.bel.alcatel.be> <31e180c5.430136383@netline-fddi.jpl.nasa.gov> <4s4adc$l4a@ecuador.it.earthlink.net> <31EA0B65.3EF8@wgs.estec.esa.nl> <31EF7E48.5ABE@lmtas.lmco.com> content-type: text/plain; charset=ISO-8859-1 organization: A-SIS mime-version: 1.0 newsgroups: comp.lang.ada,comp.lang.c Date: 1996-07-27T00:00:00+00:00 List-Id: Ken Garlington wrote in article <31EF7E48.5ABE@lmtas.lmco.com>... > Sandy McPherson wrote: > > and produce efficient machine code. > > Why is this an advantage of C over Ada? Ada certainly produces efficient > machine code, given a good compiler. In fact, there are examples of Ada > outperforming C with regard to efficiency. The one big advantage C has traditionally had over other languages is efficient compilation. The reason is that 'C' is one of the few languages that provides concepts such as register variables to give hints to the compiler. Yes, you can wave your hand and say, "well, the compiler should take care of that". But then, reality rears its head, and we realize that there are *no* compilers that are that smart. Here's an old saying that I just made up ... Behrendsen's Law: "All optimizers are crap." We will never have an optimizer that can do as good a job as human optimization until we get "strong AI", but that would take an actual science of AI to exist (let's not get started on *that*!). C is one of few languages that recognizes this. Since C is such a small language, this also makes it easier for the compiler/optimizer to a (relatively) good job. -- Tim Behrendsen (tim@airshields.com)