comp.lang.ada
 help / color / mirror / Atom feed
* Re: Admiral Tuttle (Should be ...) Revisited
@ 1993-07-20 11:29 pipex!bnr.co.uk!uknet!mcsun!sunic!news.lth.se!dag
  0 siblings, 0 replies; 7+ messages in thread
From: pipex!bnr.co.uk!uknet!mcsun!sunic!news.lth.se!dag @ 1993-07-20 11:29 UTC (permalink / raw)


In <comp.lang.ada> cjames@DSC.BLM.GOV (Colin James 0621) writes:
>
>Mark C Carroll, and others, assert that C++ is not a pre-processor
>and that C does not necessarily produce faster running code.  In
>my opinion they are misinformed because the original definition
>and intent of C++ was as a pre-processor to generate C code (not
>assembler or machine code).  If C++ has become something else then
>it should have a new name such as C+++ for non-pre-processor
>implementations on hardware platforms such as PC's.

C++ is a programming language, currently being standardized by ISO.

The definition of C++ does not and has never relied on any particular
form of implementation, although care has been take to _also_ allow
generation of C code as intermediate language.

Even the first C++ implementation was a real compiler in the sense
that it built a complete internal representation before generating
output code.  A pre-processor is in my view a transformer that passes
at least some of the input through without analyzing it.

Your comments about the name of the language are irrelevant.

For more information about the development of C++, I recommend a paper
from the second History Of Programming Languages conference; the
proceedings can be found in a recent issue of SIGPLAN Notices.

Dag Bruck
--
Head of Swedish Delegation, ISO C++ standardization committee
Member of ANSI C++ standardization committee

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Admiral Tuttle (Should be ...) Revisited
@ 1993-07-20 14:29 Gregory Aharonian
  0 siblings, 0 replies; 7+ messages in thread
From: Gregory Aharonian @ 1993-07-20 14:29 UTC (permalink / raw)


Colin James types:
>Getting back to Admiral Tuttle's comments, the subject is really closed
>because of what Ralph Crafts quotes Tuttle's boss as saying.

   The subject isn't be closed, because what Tuttle's boss says doesn't
make much difference.  People inside the DoD will pay as much attention
to Paige's directive as they do to the Ada Mandate, i.e., very little.
Besides, the DoD itself doesn't care that much either, otherwise it would
show more attention in finding out what people are doing with programming
languages inside the DoD.  On top of which, other bosses of Tuttle probably
agree with Tuttle.

   Paige's directive has no teeth behind it, so people are going to ignore 
it just like they ignore the Federal law of the Mandate.  ARPA is continually
on the record of not giving a damn what guys like Paige have to say about
Ada.  The Navy, as represented by the NRL and ONR, are too busy trying to
solve problems to care about using Ada.  And I could bore comp.lang.ada to
death with story after story about Army and Air Force units being successful
with non-Ada.  So Paige's directive (which he should have posted here),
means nothing and will have no effect, simply because few inside the DoD
believe the sincerity of the top Brass when it comes to Ada.

    Besides, Tuttle has many bosses, not just Paige.  One of his other
bosses is Deputy Secretary Perry, who is making this BIG push to get the
DoD to use COTS stuff wherever possible, trying to boost the idea of dual
use technology cost advantages.   Well most COTS stuff is not done in Ada
(less than two percent of all COTS stuff has Ada inside), so Perry's
policy, if successful, will do as much to undermine Ada as the current
hypocrisy that is tolerated.

    So from Tuttle's point, who does he support?  Paige or Perry?  (Actually
as long as his fellow Admirals support his actions, Tuttle can do whatever
he wants), especially (if he chooses non-Ada) when he has the ONR, NRL, and
ARPA behind him.

    Given reasonable time and money, I can prove that the majority of the
DoD does not support the Ada Mandate, as reflected in what they do, not
what they say.  The DoD knows this, because they fear to actually find out.
-- 
**************************************************************************
 Greg Aharonian
 Source Translation & Optimization
 P.O. Box 404, Belmont, MA 02178

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Admiral Tuttle (Should be ...) Revisited
@ 1993-07-20 15:46 cis.ohio-state.edu!math.ohio-state.edu!darwin.sura.net!newsserver.jvnc.ne
  0 siblings, 0 replies; 7+ messages in thread
From: cis.ohio-state.edu!math.ohio-state.edu!darwin.sura.net!newsserver.jvnc.ne @ 1993-07-20 15:46 UTC (permalink / raw)


In article <9307140635.aa13529@dsc.blm.gov> cjames@DSC.BLM.GOV (Colin James 062
1) writes:
>
>  
>The assertion that "oracorp.com" is Oracle is of course mistaken,
>and thank you all for private mail to that effect.
>
>Mark C Carroll, and others, assert that C++ is not a pre-processor
>and that C does not necessarily produce faster running code.  In
>my opinion they are misinformed because the original definition
>and intent of C++ was as a pre-processor to generate C code (not
>assembler or machine code).  If C++ has become something else then
>it should have a new name such as C+++ for non-pre-processor
>implementations on hardware platforms such as PC's.

I want to respond to two points in the above, seperately.

First of all: I think that the issue of C++ as preprocessor or
compiler is entirely independent of whether C code runs faster or
not. Regardless of how C++ is compiled, _any_ piece of C code can be
written in C++ (sometimes it will require extra casts, but the basic
code is identical), and will generate _identical_ code to C - either
because 
  (1) the compiler outputs the code in standard C, so it generates the
   same output code for the same input code; or
  (2) the compiler generates true object code, but because the operations
   being performed are identical, and the semantic information available is
   identical, equivalent object code will be produced. (If the same code 
   generator is used, as in the GNU g++ compiler, then this will result in
   identical code.)

Second: what is the difference between a compiler and a
preprocessor. You're calling C++ a preprocessor, because what it
outputs is C, rather than assembly language. I argue that that is
*not* the difference between a preprocessor and a compiler: the
difference is that a preprocessor does strict textual replacement
without regard for semantics, but a compiler does semantic analysis
and performs a translation from a source to an object based on the
semantic analysis.

By that definition, C++ is, and always was a compiler.

If you define a compiler as something that produces assembly code,
then I think you're using a definition which argues against reality:
is the DEC Scheme-to-C compiler really just a preprocessor? Is the
Sather language from Berkeley really just a preprocessor? Both take
languages fundamentally different from C as input, and generate
standard C as a generic intermediate language, and then use the system
C compiler as a back end. C++ is just like those two, except that the
source is much closer to the intermediate language.

	<MC>

-- 
|| Mark Craig Carroll: <MC>     ||"Don't try to tell me there's no reason
|| CIS Grad, Univ of Delaware   || for any moment in time, for every memory
|| PGP key available by finger  || of mine. Those years are lines of color on
|| carroll@udel.edu             || my face, the past is warpaint"-Happy Rhodes

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Admiral Tuttle (Should be ...) Revisited
@ 1993-07-21  1:23 usenet.coe.montana.edu!netnews.nwnet.net!news.u.washington.edu!stein2.u.w
  0 siblings, 0 replies; 7+ messages in thread
From: usenet.coe.montana.edu!netnews.nwnet.net!news.u.washington.edu!stein2.u.w @ 1993-07-21  1:23 UTC (permalink / raw)


In article <9307140635.aa13529@dsc.blm.gov> cjames@DSC.BLM.GOV (Colin James 062
1) writes:
>
>Mark C Carroll, and others, assert that C++ is not a pre-processor
>and that C does not necessarily produce faster running code.  In
>my opinion they are misinformed because the original definition
>and intent of C++ was as a pre-processor to generate C code (not
>assembler or machine code).  If C++ has become something else then
>it should have a new name such as C+++ for non-pre-processor
>implementations on hardware platforms such as PC's.
>
>I do regret the confusion generated by attributing "oracorp.com" to
>Oracle;  I also regret making valid arguments about C and C++ because
>those comments were not read carefully by the critics, and hence my
>cartouche below.

Just for fun, I'm also directing followups to comp.lang.c++.  Somebody
*please* explain to this person the difference between language definition
and implementation.

--ben

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Admiral Tuttle (Should be ...) Revisited
@ 1993-07-21  2:08 Alex Blakemore
  0 siblings, 0 replies; 7+ messages in thread
From: Alex Blakemore @ 1993-07-21  2:08 UTC (permalink / raw)


In article <9307140635.aa13529@dsc.blm.gov> cjames@DSC.BLM.GOV (Colin James 062
1) writes:
> Mark C Carroll, and others, assert that C++ is not a pre-processor ...
> In my opinion they are misinformed because the original definition
> and intent of C++ was as a pre-processor to generate C code ...
> If C++ has become something else then it should have a new name such as C+++ 
...

as others have stated, C++ is a language.
how the language is defined is a completely separate concept
from how its implemented.
thus it is possible to implement C++ via an interpreter,
compiler, or a preprocessor.

you may be suprised to know that one of the most successful
Ada compilers in existence translates Ada to C instead of directly
to object code.  There is nothing wrong with this, especially
if it is hidden from (and thus irrelevant to) the user.
Eiffel also started this way, and GNU Ada is doing something similar
(grafting onto an existing C compiler directly)

its a great way to get a working compiler on alot of systems quickly,
a good example of reuse, right?

if the translation is not hidden, then it can lead to problems.
debugging gets painful and you need to in effect know 2 languages
and how the translation works.  as things mature, you can evolve towards
traditional compilation.  thats what most C++ compilers do now.

on the other hand, if the language definition requires a particular form of 
translation then its often a bad sign.  this is one of the problems with
the C preprocessor IMHO.  C++ tries to move away from that to an extent, but
it will always be saddled with #ifdef and its curses (and occasional benefits).

P.S. does anybody know how many keywords C++ added to C? 
42 at last count according to one book I read.
thats without even touching concurrency. 
Ada9X added 5.
-- 
Alex Blakemore       alex@cs.umd.edu        NeXT mail accepted
--------------------------------------------------------------
"Without an engaged and motivated human being at the keyboard,
the computer is just another dumb box."      William Raspberry

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Admiral Tuttle (Should be ...) Revisited
@ 1993-07-21 18:29 cis.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!noc.near.ne
  0 siblings, 0 replies; 7+ messages in thread
From: cis.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!noc.near.ne @ 1993-07-21 18:29 UTC (permalink / raw)


In article <69468@mimsy.umd.edu> alex@cs.umd.edu (Alex Blakemore) writes:

   P.S. does anybody know how many keywords C++ added to C? 
   42 at last count according to one book I read.
   thats without even touching concurrency. 
   Ada9X added 5.

Don't believe everything you read! C++ has a total of only 48 reserved
words while ANSI C has 33; Ada has over 60 keywords.  Furthermore,
only six of the new keywords are to support C++ classes.  The others are
for inline hints, exception handling and memory allocation.  You are right
that C++ has no keywords related to concurrency, and I am not aware of any
attempts to add any.





--
Christopher Barber
(cbarber@bbn.com)

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: Admiral Tuttle (Should be ...) Revisited
@ 1993-07-21 20:23 Larry Liang
  0 siblings, 0 replies; 7+ messages in thread
From: Larry Liang @ 1993-07-21 20:23 UTC (permalink / raw)


In article <SRCTRAN.93Jul20092944@world.std.com> srctran@world.std.com (Gregory
 Aharonian) writes:
>   Paige's directive has no teeth behind it, so people are going to ignore 
>it just like they ignore the Federal law of the Mandate.  ARPA is continually
>on the record of not giving a damn what guys like Paige have to say about
>Ada.  The Navy, as represented by the NRL and ONR, are too busy trying to
>solve problems to care about using Ada.  And I could bore comp.lang.ada to
>death with story after story about Army and Air Force units being successful
>with non-Ada.  So Paige's directive (which he should have posted here),
>means nothing and will have no effect, simply because few inside the DoD
>believe the sincerity of the top Brass when it comes to Ada.
>

Please stop being politicians and try to work on the technical aspect of
Ada. If Ada can be improved somewhat, maybe people will choose to use
it without being forced to by a law.

Larry	liang@ulysses.att.com

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~1993-07-21 20:23 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1993-07-20 11:29 Admiral Tuttle (Should be ...) Revisited pipex!bnr.co.uk!uknet!mcsun!sunic!news.lth.se!dag
  -- strict thread matches above, loose matches on Subject: below --
1993-07-20 14:29 Gregory Aharonian
1993-07-20 15:46 cis.ohio-state.edu!math.ohio-state.edu!darwin.sura.net!newsserver.jvnc.ne
1993-07-21  1:23 usenet.coe.montana.edu!netnews.nwnet.net!news.u.washington.edu!stein2.u.w
1993-07-21  2:08 Alex Blakemore
1993-07-21 18:29 cis.ohio-state.edu!math.ohio-state.edu!howland.reston.ans.net!noc.near.ne
1993-07-21 20:23 Larry Liang

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox