Module interconnection languages
Journal of Systems and Software
Specifications in an arbitrary institution
Information and Computation - Semantics of Data Types
Principles of parameterized programming
Software reusability: vol. 1, concepts and models
How to make ad-hoc polymorphism less ad hoc
POPL '89 Proceedings of the 16th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Handbook of theoretical computer science (vol. B)
Institutions: abstract model theory for specification and programming
Journal of the ACM (JACM)
Dynamic Verification of C++ Generic Algorithms
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
An implementation-oriented semantics for module composition
Foundations of component-based systems
The boost graph library: user guide and reference manual
The boost graph library: user guide and reference manual
The Definition of Standard ML
From Specifications to Code in CASL
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
HASCASL: Towards Integrated Specification and Development of Functional Programs
AMAST '02 Proceedings of the 9th International Conference on Algebraic Methodology and Software Technology
ISAAC '88 Proceedings of the International Symposium ISSAC'88 on Symbolic and Algebraic Computation
Tecton: A Language for Manipulating Generic Objects
Program Specification, Proceedings of a Workshop
Operators and algebraic structures
FPCA '81 Proceedings of the 1981 conference on Functional programming languages and computer architecture
High-level static analysis for generic libraries
High-level static analysis for generic libraries
Essential language support for generic programming
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
Conference record of the 33rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Algorithm specialization in generic programming: challenges of constrained generics in C++
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Concepts: linguistic support for generic programming in C++
Proceedings of the 21st annual ACM SIGPLAN conference on Object-oriented programming systems, languages, and applications
Change Impact Analysis for Generic Libraries
ICSM '06 Proceedings of the 22nd IEEE International Conference on Software Maintenance
Institutions, property-aware programming and testing
LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
The heterogeneous tool set, HETS
TACAS'07 Proceedings of the 13th international conference on Tools and algorithms for the construction and analysis of systems
Hi-index | 0.00 |
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).