This event has ended. View the official site or create your own event → Check it out
This event has ended. Create your own
View analytic
Friday, May 19 • 2:30pm - 4:00pm
Locally Atomic Capabilities and How to Count Them

Log in to save this to your schedule and see who's attending!

Feedback form is now closed.
When we write a program, we imagine that each function should only exercise certain local capabilities — for example, that it should only examine or alter certain objects, and that other objects are reserved to other parts of the program.

But when we execute a program, these restrictions are largely unenforced. If any part of a program may exercise a capability, all parts may, and the accidental (or malicious) use of a non-local capability is at the heart of many bugs.

In this talk, I will examine the nature of capabilities; show how a notation for function interfaces can express the flow of capabilities between functions; define correct usage of capabilities; and present a way to instrument a function’s neighborhood or an individual translation unit to test the correct local usage of capabilities.

This talk continues the examination of program correctness in “How we reason about procedural programs” (C++Now 2015) and “What is the basic interface?” (C++Now 2016, CppCon 2016), but is intended to be accessible to people unfamiliar with that material.

avatar for Lisa Lippincott

Lisa Lippincott

Chief Software Architect, Tanium
Lisa Lippincott is Chief Software Architect at Tanium, a bay-area startup. She's also a language nerd, and has contributed to arcane parts of the C++ standard. In her spare time, she studies mathematical logic with a category-theoretic approach.

Friday May 19, 2017 2:30pm - 4:00pm
Hudson Commons

Attendees (30)