[comp.lang.ada] available ada books?

sdy@ssc-vax.UUCP (meaningless trivia) (07/14/88)

So if you were going to pick one reference book (not the LRM) for a person
who already knows some Ada which one would it be?

We have a few Barnes' books around here that aren't too bad but I figure there
must have been some newer ones published since then.


Feel free to email replies I'll summerize -- or just post -- it don't
matter much to me.


steve.

-- 
Steven D. Yee                 >>> my employer does not share my opinions  <<<
uw-beaver!ssc-vax!ssc-bee!sdy >>> (that's because I'm always right! ;-)   <<<

                There are ways of dealing with people like you.

johndoe@ada-uts (07/18/88)

***** ada-uts:comp.lang.ada / ssc-bee.ssUC~Q!sdy /  6:00 pm  Jul 13, 1988
   this is where my notesfile says it came from.  i tried email, but
   no chance!  This one's also loooong, so skip it if you're an Ada-god.

So if you were going to pick one reference book (not the LRM) for a person
who already knows some Ada which one would it be?

We have a few Barnes' books around here that aren't too bad but I figure there
must have been some newer ones published since then.

   I've never seen the Ada book by Barnes, so i really have no basis for
   making a true comparison.
   
   A book i have had pretty good success with is Ada as a second language
   by Norman H. Cohen (McGraw Hill:1986).  If you don't know Ada or only
   know a little, but do know another language pretty well, this book is
   for you.  It uses some examples of PL/I, FORTRAN and Pascal to
   illustrate some of the constructs in Ada and the reasons for them;
   (the author proclaims, however, that if you don't know one of these
   languages, the book should still be self-explanatory.)
   
    The text is divided into 20 chapters:
    
        1 - A history of Ada; you can skip this chapter
	
	2 - A whirlwind introduction to Ada; this chapter makes
	    at least a passing reference to just about everything in
	    Ada - useful for knowing where all the pieces fit in as
	    you read the rest of the chapters.
	    
        3 - Ada Types and how the user can define types
	
	4 - Object and Type Declarations; how to declare variables, etc.
	
	5 - Access types; Ada's version of pointers
	
	6 - Subtypes and Equivalence; restrictions on the use of types,
	    differences between types and subtypes, use of constraints
	    
	7 - Statements
	
	8 - Expressions - includes how to use aggregates, records, and
	    attributes
	
	9 - Subprograms - includes a discussion on structure
	
       10 - Record types with discriminants; description of and use of
       
       11 - Packages
       
       12 - Private and Limited Private types
       
       13 - Separate compilation; order of compilation; elaboration
       
       14 - Rules of scope and visibility; ordered better than LRM
       
       15 - Exceptions; handling, propogation, guidelines for use

       16 - Generic units; with helpful examples and explanation
       
       17 - Predefined i/o; discussion of file types, internal and
            external i/o, manipulating external files, stream-oriented
	    i/o, sequential and direct-access i/o
	    
       18 - Introduction to tasks; includes introductory comments on
            concurrency and a comparison to sequential problems
       
       19 - controlling task interaction; this chapter and the last
            obviously go into more detail since there is no widely
	    used language to use a starting point for comparison.
	    
       20 - Low-level i/o; use of the language for the truly nitty gritty
       
    The text is fairly comprehendible, and it is quite extensive, but
    for that very reason, it is quite large (the edition i have is over
    800 pages!)  Besides that, the only thing i don't like about it is
    the way the author defines his own method of coding for readability,
    which is almost a direct opposite of the LRM standard (e.g.
    
         FUNCTION Three_Way_Adder (First, Second, Third : IN Integer)
	   RETURN Integer IS
	   
    instead of
    
         function THREE_WAY_ADDER (FIRST, SECOND, THIRD : in INTEGER)
	   return INTEGER is
	   
    This is merely a matter of personal preference, however.  Otherwise,
    it gets my recommendation.
    
----------
Kirk Beitz