Advertisement

Enforce Inform Ignore Assume - Gradual Adoption of Contracts In Production Code - Alisdair Meredith

Enforce Inform Ignore Assume - Gradual Adoption of Contracts In Production Code - Alisdair Meredith #Programming #Cpp #AccuConf

C++23 is adding a contract checking facility directly into the language, but even prior to the language feature, contract checking systems, often build around macros such as BSLS_ASSERT in the Bloomberg open source BDE library, have supported developers describing their interfaces and auditing their code for errors.

In this talk, Alisdair Meredith will present the four fundamental semantics of a contract check that can support rolling out a contract facility retroactively into a live production system. The basic workflow is insert the contracts as rich comments that are Ignored, then turn on some telemetry to Inform you when contracts are violated, while continuing as before. Once there is confidence the system has addressed all known issues (which may take some time!) contracts can be Enforced, terminating the program when a violation is detected. Finally, for performance critical parts of the system, contracts may be Assumed by the optimizer, rather then checked at runtime, once the system is believe to be bug free.

This talk will refer to both the proposed C++23 language support for contracts, and the open source BDE library facility that allows largely the same workflow in a C++03 toolchain, as a practical alternative where the proposed language feature is not yet available for experimentation.

---------------

Alisdair Meredith is a software developer at BloombergLP in New York, and previous chair of the C++ Standard Committee Library Working Group.

He has been an active member of the C++ committee for just over a decade, and by a lucky co-incidence his first meeting was the kick-off meeting for the project that would become C++11, and also fixed the contents of the original library TR.

He is currently working on the BDE project, BloombergLP’s open source libraries that offer a foundation for C++ development, including a standard library implementation supporting the polymorphic allocator model proposed for standardization.
-----------------

Future Conferences:
ACCU 2020 Spring Conference, Bristol (UK), Marriott City Centre:
2020-03-24 to 2020-03-28.
-------------------------
ACCU Website: www.accu.org
ACCU Conference Website: conference.accu.org
ACCU Twitter: @ACCUConf
ACCU YouTube:

Filmed and Edited by Digital Medium Ltd - events.digital-medium.co.uk
Contact: events@digital-medium.co.uk

c++,ACCU,ACCUConf,ACCU Conference,ACCU 2019,ACCU Conference 2019,Coding,Programming,C++ Programming,C++ Coding,C++ Talk,C++ Tutorial,Code,Talk Video,C++ Talk Video,Coding Talk Video,ACCU Belfast,ACCU Belfast 2019,accu autumn conference,Cpp,writing code c++,c++ tutorial,c++ talk,c++ talk video,Contracts In Production Code,c++ contracts,cpp contracts,C++23,C++11,Alisdair Meredith,Alisdair Meredith c++,Alisdair Meredith Talk,Alisdair Meredith 2019,

Post a Comment

0 Comments