Home Page -------------------
[Home Page] - [Reviews Main]
-------------------

Book Review
C: A Software Engineering Approach by P.A. Darnell & P.E. Margolis
Recommended
ISBN: 3-540-97389-3       Publisher: Springer-Verlag       Pages: 622pp       Price: £19-95
Categories:   beginner's c    
Reviewed by Neil Bowler in C Vu 4-1 (Nov 1991)
I must admit my initial reaction to this book was that it wasn't quite what I expected. I thought it would be a book for experienced C programmers, describing formal software engineering techniques and methodologies, and how to use them with C. Although the book does cover such techniques as top-down design and step-wise refinement, the book seems more to be aimed at the novice who wishes to gain a clear understanding of or even learn C. Even after having used C for over four years (having learnt from the first edition of K&R), I learnt a lot from this book. The book also has a good reference section at the end that is useful for looking up the definitions of library functions etc.

The book is based on the ANSI standard but does carefully point out any possible portability problems with old compilers (ie. K&R compliant), and usually suggests the best way to get around such problems and how to produce code that will work with either 'breed' of compiler. One appendix is dedicated to highlighting the differences between K&R and ANSI, and the book describes the changes the ANSI committee brought in, both of which I found useful, never having really looked at a comparison of the two, and not knowing the full definition of the ANSI standard. The book even explains possible future ANSI features, such as optimisation of code for multi- processor machines, and possible restrictions this may cause on code written for current compilers. The book is split into logical chapters, each introducing new elements of the language, with exercises at the end of each, the first exercise being the usual "Write a program to display 'Hello World'. One very good feature is the boxes that appear throughout the text highlighting ANSI features and bug alerts; common mistakes that can cause well known side-effect bugs.

Although the book does introduce the language in a more or less logical order (I don't believe there can be a perfect order in which to introduce the various elements of C), it does seem to introduce some confusion. The first main chapter actually describing an element of C in detail is on scalar data types, but launches into the differences of 1's and 2's complement and how to convert between them, which I think is going in a bit too deep at the start. When the '++' operator is first introduced, the authors say that it will be fully explained in the next chapter, however, eight pages on they introduce the '--' operator and say that it is synonymous to '++', without having actually got to the full description of '++'. These are however, only fairly minor points and on the positive side the book has some very good features. It highlights the use of layout; indentation etc. and makes some good points on aesthetics and style. The book also introduces pointers in a simple to understand manner, and highlights possible pitfalls.

In all the book contains over 600 pages, the first 400 or so being the main body of the book. The remaining 200 pages contain the appendices, one of the largest being the source listing for a C interpreter - 'Cint', which can be bought separately on a disk (although the order form was omitted from my copy, and is probably only for the USA). Several of the appendices form a formal definition of ANSI C, even explaining the implementation limits (length of names etc.) I would certainly recommend the book to anyone starting out with the C language or to anyone who just wants to know it better.

Hint to the publisher: It is not possible to review the practical use of the system without the disk, it may well be pleasantly easy. Given the disk I would extend the review.


Other Authors with the same surname

Margolis
FAX Modem Sourcebook, The by Andrew Margolis [Recommended]  (Reviewed May 1996)
Personal Computer Dictionary by Philip Margolis  (Reviewed Mar 1997)


Last Update - 13 May 2001.

To link to this review, please use the URL: http://www.accu.org/bookreviews/public/reviews/c/c000251.htm

Copyright © The Association of C & C++ Users 1998-2000. All rights reserved.

Mirrored from http://www.accu.org/