Programming Books C Java PHP Python Learn more Browse Programming Books
Qty:1
  • List Price: $69.99
  • Save: $20.34 (29%)
Only 4 left in stock (more on the way).
Ships from and sold by Amazon.com.
Gift-wrap available.
Add to Cart
FREE Shipping on orders over $35.
Used: Very Good | Details
Sold by Payneless Inc.
Condition: Used: Very Good
Comment: Eligible for FREE Super Saving Shipping! Fast Amazon shipping plus a hassle free return policy mean your satisfaction is guaranteed! Tracking number provided with every order. Slight wear on edges and covers; otherwise item is in very good condition.
Access codes and supplements are not guaranteed with used items.
Add to Cart
Have one to sell? Sell on Amazon
Flip to back Flip to front
Listen Playing... Paused   You're listening to a sample of the Audible audio edition.
Learn more
See this image

The Design and Evolution of C++ Paperback – April 8, 1994

ISBN-13: 978-0201543308 ISBN-10: 0201543303 Edition: 1st

Buy New
Price: $49.65
31 New from $34.99 33 Used from $4.00
Amazon Price New from Used from
Paperback
"Please retry"
$49.65
$34.99 $4.00
Unknown Binding
"Please retry"
$700.00

Free%20Two-Day%20Shipping%20for%20College%20Students%20with%20Amazon%20Student



Frequently Bought Together

The Design and Evolution of C++ + More Effective C++: 35 New Ways to Improve Your Programs and Designs + Modern C++ Design: Generic Programming and Design Patterns Applied
Price for all three: $139.37

Buy the selected items together

NO_CONTENT_IN_FEATURE

Shop the new tech.book(store)
New! Introducing the tech.book(store), a hub for Software Developers and Architects, Networking Administrators, TPMs, and other technology professionals to find highly-rated and highly-relevant career resources. Shop books on programming and big data, or read this week's blog posts by authors and thought-leaders in the tech industry. > Shop now

Product Details

  • Paperback: 480 pages
  • Publisher: Addison-Wesley Professional; 1 edition (April 8, 1994)
  • Language: English
  • ISBN-10: 0201543303
  • ISBN-13: 978-0201543308
  • Product Dimensions: 9.2 x 6.4 x 1 inches
  • Shipping Weight: 1.5 pounds (View shipping rates and policies)
  • Average Customer Review: 4.6 out of 5 stars  See all reviews (25 customer reviews)
  • Amazon Best Sellers Rank: #127,344 in Books (See Top 100 in Books)

Editorial Reviews

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

From the Back Cover

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.

Features
  • Written by the inventor of C++ Stroustrup
  • Provides insights into the design decisions which shaped C++.
  • Gives technical summaries of C++.
  • Discusses the latest language features: templates, exceptions, run-time type information, and namespaces.
  • Presents Stroustrup's unique programming and design views.


0201543303B04062001

More About the Author

Bjarne Stroustrup is the designer and original implementer of C++.
He is a founding member of the ISO C++ standards committee and a major contributor to modern C++.
He worked at Bell Labs and is now a managing director in Morgan Stanley's technology division.
He is also a visiting professor at Columbia University and a distinguished research professor at Texas A&M University.
He is a member of the USA National Academy of Engineering, an ACM Fellow and an IEEE Fellow.
His publication list is as long as your arm. For details, see his home pages.

Customer Reviews

4.6 out of 5 stars
5 star
17
4 star
7
3 star
1
2 star
0
1 star
0
See all 25 customer reviews
The book is well written and very informative.
Leandro Krug Wives
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.
Olivier Langlois
While the book has chapters dealing with very specific parts of the language, I found the philosophical chapters the most interesting.
Sören Meyer-Eppler

Most Helpful Customer Reviews

25 of 26 people found the following review helpful By G. Powell on August 29, 2000
Format: Paperback
This is probably the most well written B. Stroustrup book. Without dwelling too much on the arcane, Bjarne goes over all of the reasons for the additions to the "C" language to create C++. Bjarne comes off as a guy just trying to get a job done and yet do what is right for the rest of the programming community. Its a nice change from the almost religious furor discussions that occurr on USNET.
There are still open issues among the users of C++, people who want a feature found in another language, or wish that their personal idea would be incorporated into the general language. Before posting a proposal to comp.std.c++ you should read this book. There you will most likely find a discussion on the idea and why it is either not implemented, or was rejected. Then you can organize your counter argument without wasting everyone's time. (Also one of the first counter posts will be a citation to this book.) It's not that C++ is the perfect language, it isn't, after all my pet idea of overloading operator.() was rejected, but in ammending the ISO99 C++ standard you need to know what has already been discussed. So we can go forward without rehashing.
Intermediate C++ programmers would also benefit from the discussions on casting, use of private/public/protected inheritence and scoping, and exceptions. Bjarne goes over why these things changed over time and what problems these features are intended to solve.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
14 of 14 people found the following review helpful By Sören Meyer-Eppler on October 20, 2002
Format: Paperback
This book is very interesting in that it doesn't tell you how to program in C++ but rather highlights why C++ is the way it is today. It starts with the very roots, an extension to the C language ('C with classes'') Bjarne devised back in 1979, because he faced a software engineering problem at the time where all currently available tools seemed inappropriate. This highly real world oriented design attitude was kept throughout the evolution of C++ - Bjarne specifically didn't want to produce an 'academic' language. This view and the absolute necessity for C compatibility and efficiency explain lots, if not all, of C++s more ugly syntactic and semantic constructs. While the book has chapters dealing with very specific parts of the language, I found the philosophical chapters the most interesting. These explain the author's personal views on programming and design in general and consequently why certain things were accepted or rejected into C++. Bjarne stresses the point that C++ was designed from the beginning to be a 'multiple paradigm' language. Object oriented programming was never meant to be, and is not, the only valid - holy grail - style of programming, that many make it out to be. It's quite frustrating to see features devised ten years ago still not properly supported by the current crop of compilers, templates for example (export anyone?).
The book is not for the novice programmer, but for the experienced C++ user who wants to know the whys behind the language. While a novice might be interested in that information too, it is not an advisable lecture for those readers, since they might easily get confused with the source code examples showing directions in which C++ did not evolve.
To quote one of the design goals: 'C++ is a general-purpose language designed to make programming more enjoyable for the serious programmer' - I think it succeeded.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
15 of 15 people found the following review helpful By Douglas Welzel on July 25, 2002
Format: 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.
1 Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
11 of 11 people found the following review helpful By Carl Anderson on June 23, 2001
Format: Paperback
I am a CS student and this is the one C++ book I always carry with me. I find it useful as an explanation to "how and why" C++ is the way it is, and also useful as a reference. The 34 page index, which is about 1/12th of the book, is exhaustive. Almost any aspect of the C++ language is listed along with a description of how it works and why.
This book offers key insight into the class layout in memory, vtables, multiple inheritance and the type-checking system.
Bjarne talks about what he wanted to add, but was not allowed to. He also explains how C++ was written mostly in C++, which I found weird and amusing.
If you're looking for info on the STL, this book has none; this is strictly C++ language related. If you're interested in computer language development or compiler writing, this book would be wonderful.
Lastly, if you plan on teaching C++, you should really read this book so you can understand the language well enough to explain it.
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again
8 of 8 people found the following review helpful By Shankar N. Swamy on July 13, 2002
Format: 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.
Read more ›
Comment Was this review helpful to you? Yes No Sending feedback...
Thank you for your feedback. If this review is inappropriate, please let us know.
Sorry, we failed to record your vote. Please try again

Customer Images

Most Recent Customer Reviews

Search

What Other Items Do Customers Buy After Viewing This Item?