C++Now 2021 has ended
Back To Schedule
Friday, May 7 • 7:00am - 8:30am
What Neighborhoods Owe to Each Other: Rights, Duties, Immunities and Disabilities of Functions and Objects

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Our understanding of a program is formed locally: we design or examine a single neighborhood of a program at a time. The neighborhoods we consider most often are those of functions and objects, in the context of the interfaces that surround them, but independently of the implementations beyond those interfaces.

But these neighborhoods are not fully independent. Objects and functions form ongoing relationships with each other, each fulfilling their own obligations by relying on the obligations of others.

The field of jurisprudence provides us with terms for these relationships: right and duty; immunity and disability. Casting these inter-neighborhood relationships in these terms provides insight into the fundamentals of programming and can help us avoid problems involving as resource lifetime, aliasing, and race conditions.

While this presentation is intended to stand on its own, it continues the examination of procedural logic in my earlier talks, such as “The Truth of a Procedure” and “Neighborhoods Banding Together.” It improves upon the material in my 2017 talk, “Locally Atomic Capabilities and How to Count Them.”

avatar for Lisa Lippincott

Lisa Lippincott

Software Architect, Tanium
Lisa Lippincott designed the software architectures of Tanium and BigFix, two systems for managing large fleets of computers. She's also a language nerd, and has contributed to arcane parts of the C++ standard. In her spare time, she studies mathematical logic, and wants to make computer-checked... Read More →

Friday May 7, 2021 7:00am - 8:30am MDT
  • Interfaces