Vous voulez voir cette page en français ? Cliquez ici.


or
Sign in to turn on 1-Click ordering.
More Buying Choices
Have one to sell? Sell yours here
The Design and Evolution of C++
 
See larger image
 

The Design and Evolution of C++ [Paperback]

Bjarne Stroustrup
4.6 out of 5 stars  See all reviews (17 customer reviews)
List Price: CDN$ 62.99
Price: CDN$ 39.68 & this item ships for FREE with Super Saver Shipping. Details
You Save: CDN$ 23.31 (37%)
o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o o
In Stock.
Ships from and sold by Amazon.ca. Gift-wrap available.
Only 1 left in stock--order soon (more on the way).
Want it delivered Tuesday, May 29? Choose One-Day Shipping at checkout.

Product Details


Product Description

Book Description

The inventor of C++ presents the definitive insider's guide to the design and development of the C++ programming language. Without ommitting critical details or getting bogged-down in technicalities, Stroustrup presents his unique insights into the decisions that shaped C++. Every C++ programmer will benefit from Stroustrup's explanations of the--why's--behind C++ from the earliest features, such as the original class concept, to the latest extensions, such as new casts and explicit template instantiation.
Some C++ design decisions have been universally praised, while others remain controversial, and debated vigorously; still other features have been rejected based on experimentation. In this book, Stroustrup dissects many of these decisions to present a case study in "real object- oriented language development" for the working programmer. In doing so, he presents his views on programming and design in a concrete and useful way that makes this book a must-buy for every C++ programmer.

From the Inside Flap

"He who does not plow, must write."
--Martin A. Hansen

The ACM HOPL-2 conference on the History of Programming Languages asked me to write a paper on the history of C++. This seemed a reasonable idea and a bit of an honor, so I started writing. To get a more comprehensive and balanced view of C++'s growth, I asked a few friends from the early days of C++ for their recollections. That caused news of this project to travel through the grapevine. There, the story mutated, and one day I received a message from a friend asking where he could buy my new book on the design of C++. That email message is the real origin of this book.

Traditional books about programming and programming languages explain what a language is and how to use it. However, many people are also curious about why a language is the way it is and how it came to be that way. This book answers these last two questions for C++. It explains how C++ evolved from its first design to the language in use today. It describes the key problems, design aims, language ideas, and constraints that shaped C++, and how they changed over time.

Naturally, C++ and the ideas about design and programming that shaped it didn't just mutate by themselves. What really evolved was the C++ users' understanding of their practical problems and of the tools needed to help solve them. Consequently, this book also traces the key problems tackled using C++ and the views of the people who tackled them in ways that influenced C++.

C++ is still a young language. Some of the issues discussed here are yet unknown to many users. Many implications of decisions described here will not become obvious for years to come. This book presents my view of how C++ came about, what it is, and what it ought to be. I hope this will be of help to people trying to understand how best to use C++ and in the continuing evolution of C++.

The emphasis is on the overall design goals, practical constraints, and people that shaped C++. The key design decisions relating to language features are discussed and put into their historical context. The evolution of C++ is traced from C with Classes through Release 1.0 and 2.0 to the current ANSI/ISO standards work and the explosion of use, interest, commercial activity, compilers, tools, environments, and libraries. C++'s relationship to C and Simula is discussed in detail. C++'s relationship to other languages is discussed briefly. The design of major language facilities such as classes, inheritance, abstract classes, overloading, memory management, templates, exception handling, run-time type information, and namespaces are discussed in some detail.

The primary aim of this book is to give C++ programmers a better idea of the background and fundamental concepts of their language and hopefully to inspire them to experiment with ways of using C++ that are new to them. This book can also be read by experienced programmers and students of programming languages and might help them decide whether using C++ might be worth their while.

Acknowledgments

I am very grateful to Steve Clamage, Tony Hansen, Lorraine Juhl, Peter Juhl, Brian Kernighan, Lee Knight, Doug Lea, Doug McIlroy, Barbara Moo, Jens Palsberg, Steve Rumsby, and Christopher Skelly for reading complete drafts of this book. Their constructive comments caused major changes to the contents and organization of this book. Steve Buroff, Martin Carroll, Sean Corfield, Tom Hagelskjær, Rick Hollinbeck, Dennis Mancl, and Stan Lippman helped by commenting on selected chapters. Also, thanks to Archie Lachner for asking for this book before I had thought of writing it.

Naturally, I owe thanks to the many people who helped make C++. In a sense, this book is a tribute to them and some of their names can be found throughout the chapters and in the index. Should I single out individuals, it must be Brian Kernighan, Andrew Koenig, Doug McIlroy, and Jonathan Shopiro, each of whom has been a steady source of help, encouragement, and ideas for more than a decade. Also, thanks to Kristen Nygaard and Dennis Ritchie as the designers of Simula and C from which the key ingredients of C++ were borrowed. Over the years, I have come to appreciate them not only as brilliant and practical language designers, but also as gentlemen and thoroughly likable individuals.

Bjarne Stroustrup
Murray Hill, New Jersey



0201543303P04062001

Tag this product

 (What's this?)
Think of a tag as a keyword or label you consider is strongly related to this product.
Tags will help all customers organize and find favorite items.
Your tags: Add your first tag
 

 

Customer Reviews

17 Reviews
5 star:
 (12)
4 star:
 (4)
3 star:
 (1)
2 star:    (0)
1 star:    (0)
 
 
 
 
 
Average Customer Review
4.6 out of 5 stars (17 customer reviews)
 
 
 
 
Share your thoughts with other customers:
Most helpful customer reviews

1 of 1 people found the following review helpful
4.0 out of 5 stars If only more languages had a book like this..., July 25 2002
By 
Douglas Welzel (Seattle, WA) - See all my reviews
(REAL NAME)   
This review is from: The Design and Evolution of C++ (Paperback)
While this title probably won't help your development skill, it provides a great deal of insight into the design of C++. Parts of C++ may seem a bit odd (crufty, overly complex, however you want to think of it). In this book Stroustrup clearly explains the motivations and tradeoffs that went into every feature of the language. While you may not agree with the decisions, understanding the thought process behind them is incredibly interesting and will give you a better appreciation for the language.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


1 of 1 people found the following review helpful
5.0 out of 5 stars Entry point to becoming an educated C++ programmer!, July 13 2002
By 
Shankar N. Swamy (Folsom, CA) - See all my reviews
(REAL NAME)   
This review is from: The Design and Evolution of C++ (Paperback)
My C++ education started around the time when there were no real C++ compilers, a broken translator from AT&T was all there was. Seemingly unending bugs in that translator, grossly incomplete implementation, and some fellow graduate students working in the areas of programming languages gave me enough knowledge to realize the limitations of C++. And, ah, I also read Bjarne Stroustrup's occasional postings to comp.lang.c++ Internet news group, as a counterbalance to the rest of my experiences. Before I could become a "card carrying member of the C++ haters group", this book arrived. I learned to appreciate C++ inspite of it being what it is: C++ ("not even a B!").

That's what this book does - explain the various decisions that have been made in the design of the languge, as it evolved at Bell Labs in the mid eighties and early nineties. Side by side, it also records the relevant history of the development of the language ("evolution").

If you are a new C++ programmer, or even one who uses C++ as an "improved C" (whatever that is supposed to mean!), then you probably won't find much to appreciate in this. On the other hand if you have struggled with the more arcane features of it, or wondered about the features from your favorite language missing in C++, this book will most likely explain the reasons behind those. By understanding why a feature is supported or not supported should help you understand the paradigm of programming in C++ and thus help you write better C++ programs.

Judging from this book (and NOT from the First Edition of his book on C++ language!), Stroustrup is an outstanding writer. The book is well edited - detailed where tolerable; interesting, precise and to the point where necessary, trimmed where it could have been boring. All in all, a very readable and educating book.

Sometime ago, I had to teach a course in Software Engineering to some Computer Science graduate students. I made this a "strongly suggested reading" for the course.

In addtion to desisgn and evolution of C++, you also get an insight into Stroustrup's overall philosophy in Programming Languages, Computer Science, and in general about Software, thorugh interspersed opinions - which are variously funny, witty, humorous, and always insightful. ("... overloading the white space [to make F=MA semantically equivalent to F=M*A] is beyond the scope of this book ...", "... students showed their usual creativity in avoiding the paper work [to get the software] ..."!).

All in all, this is a nice book that I read the first time in 1994. Since then have read it two more times so far, and frequently recommend to other competent C++ programmers. (And, in spite of Java, C#, Perl, Ruby and what not, C++ has continued to be my first language in programming!)

Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No


4.0 out of 5 stars If you know what to expect about this book, it is the best choice, April 28 2007
By 
Olivier Langlois "www.OlivierLanglois.net" (Montreal, Quebec Canada) - See all my reviews
(REAL NAME)   
This review is from: The Design and Evolution of C++ (Paperback)
I have red this book for the first time 4 years ago. What I remember is that, at that time, I got few interesting informations here and there but overall the reading was more tedious than enjoyable. For some reasons, I have reread this book for a second time and perhaps because I could now relate my C++ programming experience with what the book explains, I have found it much more enjoyable to read this time. So my opinion is that to really get the maximum out of this book, you really need intimate knowledge and experience with the C++ programming language. I would not recommend this book for someone that has just started to use C++. Also, you have to know what the book is about. Do not expect to get practical knowledge to improve your C++ skills because you will not get much. The only exception is that this book made me curious about the "intersection" rule from Andrew Koenig about overloaded functions and made me look into the Annotated C++ reference manual to know more about it. This book is more about the C++ history and how and why certain design decisions have been taken about the language. If this is what you are expecting, you will like the book.
Help other customers find the most helpful reviews 
Was this review helpful to you? Yes No

Share your thoughts with other customers: Create your own review
Want to see more reviews on this item?
 Go to Amazon.com to see all 22 reviews  4.6 out of 5 stars 
 
 
Most recent customer reviews











Only search this product's reviews



Listmania!

Create a Listmania! list

Look for similar items by category


Look for similar items by subject


Feedback


Amazon.ca Privacy Statement Amazon.ca Shipping Information Amazon.ca Returns & Exchanges