The C++ Programming Language [ePub]

by Bjarne Stroustrup

I've read the first, second, and third editions of this book.(Before I gave up my evil ways and switched to Java.)The most concise thing to say about the language can be summarized by placing the three volumes on the shelf next to each other.That makes it clear how much the scope of the language has expanded over time (approximately doubling on each edition).It's a sign of how tricky language design is — Stroustrop was essentially forced to add some rather byzantine constructs over time to patch up non-obvious holes in the language that only emerged as it was more widely adopted.(For example, the hideous const_cast, static_cast, dynamic_cast, and the dangerously omnipotent reinterpret_cast.)The result is a language that had bloated out beyond its ideal simplicity into a tangle of syntax and semantics that early compilers couldn't even figure out.

With respect to the book itself, it's clearly written by a language designer, rather than a language user.It is not organized in a way to either teach the language or be a useful reference book to keep on your desk.But if you're implementing a compiler for C++ (may Thoth have mercy on your soul), then this is the place to start.

That said, it's as close to authoritative as it's possible to come, and it contains a lot of very valuable information.But what did really interest me, as I read it, are Stroustrop's thoughts on language design, objectives, and his justifications for why certain language features were introduced.(As ugly as some of them are, they are all there for a reason.)It's also an interesting case study in how good intentions can go awry because of unforseen consequences.



Back to Top