C++ concepts as institutions: A specification view on concepts
Paper i proceeding, 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++

Författare

Marcin Zalewski

Chalmers, Data- och informationsteknik, Datavetenskap

Sibylle Schupp

Chalmers, Data- och informationsteknik, Datavetenskap

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

Ämneskategorier

Programvaruteknik

Datavetenskap (datalogi)

DOI

10.1145/1512762.1512770

ISBN

978-160558086-9