C++ concepts as institutions: A specification view on concepts
Paper in proceedings, 2007

With the recent developments in the C++ language, concepts are mostly discussed as a form of constrained polymorphism. Yet, concepts also allow for an alternative, implementation-independent view that comes from their origin in (algebraic) specification languages. In this paper, we return to this specification view on concepts and formalize C++ concepts as institutions, a well-established notion for precise specifications of software components. We argue that institutions form a suitable theoretical framework for software systems like libraries where the different parts establish relations that are captured by different logics, or no formal logic at all. Assuming the C++ concept descriptions, concept maps, and axioms as in the draft currently accepted by the C++ standardization committee, we show that concept descriptions and axioms form an institution (with equational logic) but also, and perhaps surprisingly, that concept descriptions and concept maps form an institution (with no formal logic).

Institutions

Concepts

C++

Author

Marcin Zalewski

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

Sibylle Schupp

Chalmers, Computer Science and Engineering (Chalmers), Computing Science (Chalmers)

ACM SIGPLAN Symposium on Library-Centric Software Design LCSD'07, co-located with the Object-Oriented Programming, Systems, Languages and Applications (OOPSLA'07)

76-87

Subject Categories

Software Engineering

Computer Science

DOI

10.1145/1512762.1512770

ISBN

978-160558086-9

More information

Created

10/6/2017