[comp.lang.ada] Excerpts from "The C Programming Language"

bagpiper@mcosm.uucp (05/25/90)

I basically agree with Mr. Hannum...I just want to correct his misconception
that you can't do cast-like operations in Ada....you just can't do them
very efficiently!!  (no flames please, many Ada implementation don't handle
generics very well...)

In article <2426@psuhcx.psu.edu>, hannum@schubert.psu.edu (Charles Hannum) writes:
> To settle some of the flame wars from Ada, Lisp, and Pascal lovers against the
> C language, I quote some paragraphs from the introduction to "The C Programming
> Language" by Brian W. Kernighan and Dennis M. Ritchie below:
> 
[stuff deleted]
> of incompatible data types.  Nevertheless, C retains the basic philosophy that
> programmers know what they are doing; it only requires that they state their
> intentions explicitly."
> 
> Pay careful attention to that last sentence.  This is the basic philosophical
> difference between C and [Ada,Pascal,...].  C allows you to do funny type cast-
> ing, as long as you state it explicitly.  [Ada,Pascal,...] does not.  In the
> hands of an idiot, this is dangerous.  In the hands on an experienced and
> knowledgable programmer, this is a powerful tool.
You can do cast like operations in Ada.  Check out the predefined generic
UNCHECKED_CONVERSION.  There are also a few other places where Ada seems
to have lower level features then c.  Some of the representation attributes
are hard to copy in c.  Of course the other day I was trying to write
a minimal debugger in Ada and just about killed myself for some way to
represent a generic pointer (void *).  Oh well....
[more stuff deleted]
> Virtually,
> - Charles Martin Hannum II         PennMUD Design Team - (Resident) Programmer
>     (That's Charles to you!)       "Those who say a thing cannot be done should
>   Please send mail to:              under no circumstances stand in the way of
>   hannum@haydn.psu.edu              he who is doing it." - a misquote

					Later,
					  Michael

P.S. I am no receiving comp.lang.ada yet (I'm working on it), so if someone
in comp.lang.ada has something to say, please mail it.

-------------------------------------------------------------------------------
+           Michael Hunter  {backbone}!hacgate!trwind!mcosm!bagpiper          +
+                                 BIX:bagpiper                                +
+               NOTHING like a spacecraft with a bad attitude!!!              +
-------------------------------------------------------------------------------

kassover@jupiter.crd.ge.com (David Kassover) (05/25/90)

>In article <2426@psuhcx.psu.edu>, hannum@schubert.psu.edu (Charles Hannum) writes:
|| To settle some of the flame wars from Ada, Lisp, and Pascal lovers against the
|| C language, I quote some paragraphs from the introduction to "The C Programming
|| Language" by Brian W. Kernighan and Dennis M. Ritchie below:
|| 
|[stuff deleted]
|| of incompatible data types.  Nevertheless, C retains the basic philosophy that
|| programmers know what they are doing; it only requires that they state their
|| intentions explicitly."


Well and good.  But the *users* don't know what the programmer
was doing.

For that matter, the programmer doesn't know what the current
implementation or port is doing to the program (or the user)  8-)

I would think that if someone wanted to build a sharp tool, one
would also want to keep the edges away from the handles.  IMO,
Ada helps this more than C does.

--
David Kassover             "Proper technique helps protect you against
kassover@ra.crd.ge.com	    sharp weapons and dull judges."
kassover@crd.ge.com			F. Collins