++Typestates in C
Date
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Saudi Digital Library
Abstract
The concept of typestate was used in many programming languages to ensure safe programming, however, the concept remained neglected for C++, despite the many virtues typestate can offer. This project aims at investigating the implementability of typestate in C++, and attempting to lay the foundational stone of an ambitious project of providing the typestate feature for C++. The project aims at achieving this objective by creating a typestate library for the C++ language, which will provide templates for protocol definitions, and then statically check that clients of the class are behaving; accordingly, as explained in detail in this dissertation, also in the demo video. https://youtu.be/UqdHB17yRtQ
The project is expected to help programmers by detecting violations of protocols that they themselves define, giving them more flexibility and making the programming process more practical and more trouble-free. To test this library, I ran C++ programs examples that make use of it, to see whether it detects any errors according to typestates specifications; and it did so successfully in most cases, with only a few minor drawbacks that could .be addressed in future works