- Paperback: 480 pages
- Publisher: Addison-Wesley Professional; 1 edition (April 8, 1994)
- Language: English
- ISBN-10: 0201543303
- ISBN-13: 978-0201543308
- Product Dimensions: 6.2 x 1.3 x 9 inches
- Shipping Weight: 1.5 pounds (View shipping rates and policies)
- Average Customer Review: 30 customer reviews
Amazon Best Sellers Rank:
#388,301 in Books (See Top 100 in Books)
- #195 in Books > Computers & Technology > Programming > Languages & Tools > C & C++ > C++
- #206 in Books > Computers & Technology > Programming > Microsoft Programming > C & C++ Windows Programming
- #390 in Books > Computers & Technology > Programming > Software Design, Testing & Engineering > Object-Oriented Design
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The Design and Evolution of C++ 1st Edition
Use the Amazon App to scan ISBNs and compare prices.
Fulfillment by Amazon (FBA) is a service we offer sellers that lets them store their products in Amazon's fulfillment centers, and we directly pack, ship, and provide customer service for these products. Something we hope you'll especially enjoy: FBA items qualify for FREE Shipping and Amazon Prime.
If you're a seller, Fulfillment by Amazon can help you increase your sales. We invite you to learn more about Fulfillment by Amazon .
All Books, All the Time
Read author interviews, book reviews, editors picks, and more at the Amazon Book Review. Read it now
Frequently bought together
Customers who bought this item also bought
Customers who viewed this item also viewed
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.
Murray Hill, New Jersey
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.
Author interviews, book reviews, editors picks, and more. Read it now
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
This is an older book (1994) and the last two decades of C++ evolution are not described. If you want to know about the early history of C++ and to see how something is shaped by multiple technical and political and commercial forces, then this book is a good read. It was interesting to read about how innovation within a programming language happens through the interactions of people who are given the time and resources.
Stroustrup did a good job on the writing of this book and the narration is quite good. It is interesting to read of the various discussions that came up during the years of when C++ moved from a lab experiment to a commercial product with a standard and compiler vendors delivering into the eager hands of programmers good compilers for C++. It is also interesting to read about the large number of people who through discussions with Stroustrup helped to shape the C++ language.
There is some discussion about the standards process and of how a standard is created and evolved. Some of the discussions and conflicts and how conflicts were resolved are interesting. The history of C++ from the first C++ compilers which generated C source from the C++ so that any computer with a C compiler could also use the C++ compiler was interesting. The discussion about the evolution plans versus the evolution reality is interesting. And in some places Stroustrup points out mistakes as well as times when something was done for political expediency rather than technical need.
This book is not really about C++ programming language though there is discussion of particular C++ language constructs. It is really about how the C++ language grew from a lab experiment by someone who wanted a better programming language and wanted other people to use that language because it was a better language.
I had heard of C++ as being a better C and I had always assumed that the goal of C++ was to be a better C. However what I took away from this book was that C++ was intended to be a better programming language period. The use of C programming language constructs was due to Stroustrup's idea that the C programming language was the language to replace and in order to do that C++ must be as good as C in the ways that C was good (primarily performance), to be compatible with much of the C programming infrastructure such as linkers and existing libraries, and to also provide the language constructs that would move as much of the source checking onto the compiler as possible so that people working on large, complex software systems would have a better safety net.
If you are interested in things like "Why did they do that?", this is one of the documents you should read. It is also a first class lesson on how to accomplish your interests, when you likely will not do that single-handedly, the primary common component of all great achievement.
Most recent customer reviews
I started programming back in the late 1970s, RPG II -- argh!Read more