Contracts programming is based in the idea that any operation has a number of preconditions and postconditions. Different instantiations of this idea have been used in different programming languages (Eiffel, Ada2012, C#, D). However, the own characteristics of C++ and the wide variety of application domains where it is used make necessary slightly different approaches. In this talk, I will briefly cover the general ideas behind contracts programming with special attention the the difference between robustness and correctness. Then I will provide details on how these ideas have been incorporated into C++20.
About the speaker
José Daniel García is an Associate Professor in Computer Architecture at the Computer Science and Engineering Department of University Carlos III of Madrid. He has been serving as head of the Spanish delegation to ISO C++ standards committee since 2008. Before joining academia he worked as a software engineer in industrial projects in different domains including real time control systems, civil engineering, medical imaging, aerospace engineering, and high performance scientific computing.
As a researcher, he works on parallel and distributed systems within the ARCOS research group. His work is within the research line of Programming Models for Applications Improvement (making faster and/or more energy efficient applications while balancing software maintenance). He has led the participation of UC3M in European projects, highly related to the use of parallelism in C++. His main research goal is to make software developer lives easier by balancing software maintainability and application performance. In summary easier to read, faster to run, and less resources consumed.