Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Inside the C⁺⁺ object model

    Inside the C⁺⁺ object model

    Stanley B. Lippman · 1996

    Inside the C++ Object Model focuses on the underlying mechanisms that support object-oriented programming within C++: constructor semantics, temporary generation, support for encapsulation, inheritance and "the virtuals" - virtual functions and virtual inheritance. This book shows how your understanding the underlying implementation models can help you code more efficiently and with greater confidence. Lippman dispells the misinformation and myths about the overhead and complexity associated with C++, while pointing out areas in which costs and trade-offs, sometimes hidden, do exist. He then explains how the various implementation models arose, points out areas where they are likely to evolve, and why they are what they are. He covers the semantic implications of the C++ object model and how that model affects you programs.

    Programming
    Open LibraryAmazon
    Stats for nerds
    7recommend
    14mentions
    9people
    2010–2026years
    79% recommend14% neutral7% critical

    Mentions per year

    201020122014201620182020202220242026

    What Hacker News says

    1. rramadassAug 2026
      AFAIK, the first design for implementation of vtables was by Bjarne Stroustrup in his paper Multiple Inheritance for C++ in 1986/1987.

      Pdf at https://www.google.com/goto?url=CAESawHuR6pN4SDa5tLkqrSuoaot... and reissue at https://www.researchgate.net/publication/2396782_Multiple_In...

      I read this in one of the documentation books (still have it somewhere) which came with SCO Unix (don't recall the date). This book contained articles on C++ only and was an introduction to the language and compiler (since the language was very new). I also remember that it had an article on Template mechanism.

      Next was Jan Gray from Microsoft's excellent 1994 article in MSDN titled C++: Under the Hood which explained class layouts/vtables/etc. It is still a excellent read today. Pdf at https://www.google.com/goto?url=CAESewHuR6pNy2XLp9fzgwckhWpg...

      Finally of course you have Inside the C++ Object Model by Stanley Lippman explaining everything in detail.

      thread
    2. rramadassMar 2026
      For a beginner;

      1) C++ Primer 5th edition (updated to C++11) by Stanley Lippman, Josee Lajoie, Barbara Moo. Don't bother with any other book until you have made a full pass over this. You can later update yourself to C++20/C++23/etc. from the books by Stroustrup/Others.

      2) Inside the C++ Object Model by Stanley Lippman. An old classic to understand the "C++ Abstract Machine" built on top of the "C Abstract Machine".

      PS: The Definitive C++ Book Guide and List - https://stackoverflow.com/questions/388242/the-definitive-c-...

      thread
    3. zabzonkAug 2023
      I don't remember his death being noted at the time, which is sad. His books are all well worth reading, particularly "Inside the C++ Object Model", which is still relevant.
      thread
    4. twoodfinJul 2020
      This is exactly how C++ structures single-inheritance types without virtual member functions.

      Supporting virtual member functions (i.e. runtime polymorphism) only requires adding a vtable pointer—which IIRC Linux also does for some of its own structural subtyping, at least in its Virtual File System component.

      Multiple inheritance requires some more bookkeeping by the compiler of appropriate offsets, but structurally it doesn't change very much.

      It's not surprising: C++ was famously originally implemented as a preprocess transformation into C. Inside the C++ Object Model[1] is a fascinating deep dive on how C++ semantics map to C constructs.

      [1] https://www.oreilly.com/library/view/inside-the-c/0201834545...

      thread
    5. rramadassJan 2019
      "Systems Programming" at the minimum, requires knowledge of Language internals, Runtimes, Compiler Toolchains, OS internals, Drivers, Computer Architecture/Organization, CPU/Multiprocessors and Networking. There are other domains like Security, Parallel/Distributed Processing etc which are cross-functional or orthogonal to the above and can be focused on as needed.

      But be warned, earning potential-wise you may lose out(unless you get lucky) to the latest whiz-bang Web/Mobile technology/framework brouhaha. That is the nature of the market. However i consider that the satisfaction of learning and "knowing" how things work, more than makes up for the small loss in earning potential. This technology is also more fundamental and stable and thus will not go away anytime soon.

      I have found the following papers/books (somewhat different from the most commonly cited) useful in my study;

      Languages: Fluency in C is a must. It is THE "portable assembly" language and is available on everything from 8-bit MCUs to multicore servers. You can also link C modules to everything under the sun thus allowing you to extend almost any other language. C++ is also needed; but judicious usage as a "better C" rather than heavy-duty OOP/Generic/Template-mataprogramming madness.

      - Computer Systems: A Programmer's Perspective 3rd ed. based on x86-64. You might also want to get the 1st ed. which is based on 32-bit x86. These books cover the HW/SW interface and thus includes almost all the topics under "Systems Programming".

      - The C Companion by Allen Holub.

      - Inside the C++ object model by Stan Lippman.

      Tools/Toolchain: Knowledge of the GCC toolchain is a must.

      - The Definitive guide to GCC by Hagen

      - ELF: A Programmer's perspective; paper by H.J.Liu

      - C++ Under the hood; MSDN article by Jan Gray

      - The Practice of Programming by Kernighan and Pike.

      OS/Kernel/Drivers:

      - UNIX Systems for Modern Architectures: Symmetric Multiprocessing and Caching for Kernel Programmers by Curt Schimmel.

      - Linux Kernel Development 3rd ed. by Robert Love.

      - Essential Linux Device Drivers by Venkateswaran.

      - Embedded Linux Primer 2nd ed. by Hallinan

      - The Unix Programming Environment by Kernighan and Pike

      - Advanced Unix Programming 2nd ed. by Rochkind

      Computer Architecture/Organization

      - Modern Processor Design: Fundamentals of Superscalear Processors by Shen and Lipasti

      - Computer System Design: System-on-Chip by Flynn and Luk

      Parallel/Distributed processing:

      - Foundations of Multithreaded, Parallel, and Distributed Programming by Andrews

      - The Art of Multiprocessor Programming by Herlihy and Shavit.

      Bare-metal Embedded: Where the "rubber meets the road"

      - Embedded Systems Architecture: Explore architectural concepts, pragmatic design patterns, and best practices to produce robust systems by Lacamera

      - Patterns for Time-Triggered Embedded Systems by Pont.

      thread
    6. twoodfinFeb 2014
      If you can handle some abstract theory, the design of the STL is put into a useful context by Stepanov's Elements of Programming.

      Stroustrup's The Design and Evolution of C++ is another great "why" book, and I hope that Bjarne will decide to update it for C++11 or 14.

      It's older, but reading Lippman's Inside the C++ Object Model is what finally made the language click for me.

      thread

    Related

    The C++ standard template libraryP. J. Plauger
    2015–2026

    The C++ standard template library

    P. J. Plauger
    1 recommend · 8
    Cover of Compiler construction for digital computers
    2015–2026

    Compiler construction for digital computers

    David Gries
    1 recommend · 7
    Cover of Embedded C
    2010–2024

    Embedded C

    Michael J. Pont
    1 recommend · 3
    Cover of Hands-On Network Programming with C
    2022–2024

    Hands-On Network Programming with C

    Lewis Van Winkle
    2 recommend · 2
    Cover of Advanced data structures
    2016–2021

    Advanced data structures

    Peter Brass
    3 recommend · 4
    Cover of Ruminations on C++
    2016–2025

    Ruminations on C++

    Andrew Koenig
    3 recommend · 4
    Cover of Object-oriented programming
    2010–2026

    Object-oriented programming

    Peter Coad
    recommend · 5
    3
    Cover of A theory of objects
    2008–2024

    A theory of objects

    Martín Abadi
    4 recommend · 13