[Home Page] - [Reviews Main] | |
|
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) |
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.
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.