Christian DeLozier

Learn More
The C++ programming language remains widely used, despite inheriting many unsafe features from C---features that often lead to failures of type or memory safety that manifest as buffer overflows, use-after-free vulnerabilities, or abstraction violations. Malicious attackers can exploit such violations to compromise application and system security. This(More)
OBJECTIVE To use ecological momentary assessment techniques to measure the association of major depressive disorder (MDD) with media use. DESIGN Data were collected using an ecological momentary assessment protocol with cellular telephone-based brief interviews. SETTING Participants received as many as 60 telephone calls from a trained staff member(More)
In the name of simplicity, Core Ironclad omits most language features of C++ that do not directly impinge on this part of the system. For example, inheritance, templates, and overloading do not interact with pointer lifetimes, so they are left out. What is left is a small, C++-like core calculus with just enough features to cover the interesting parts of(More)
Core Ironclad is a core calculus that models the salient features of Ironclad C++, a library-augmented type-safe subset of C++. We give an overview of the language including its definition and key design points. We then prove type safety for the language and use that result to show that the pointer lifetime invariant, a key property of Ironclad C++, holds.
C++ remains a widely used programming language, despite retaining many unsafe features from C. These unsafe features often lead to violations of type and memory safety, which manifest as buffer overflows, use-after-free vulner-abilities, or abstraction violations. Malicious attackers are able to exploit such violations to compromise application and system(More)
Core Ironclad is a core calculus that models the salient features of Ironclad C++, a library-augmented type-safe subset of C++. We give an overview of the language including its definition and key design points. We then prove type safety for the language and use that result to show that the pointer lifetime invariant, a key property of Ironclad C++, holds(More)
Writing correct synchronization is one of the main difficulties of multithreaded programming. Incorrect synchronization causes many subtle concurrency errors such as data races and atomicity violations. Previous work has proposed stronger memory consistency models to rule out certain classes of concurrency bugs. However, these approaches are limited by a(More)
  • 1