Tech Report CS-92-51

CCEL: A Metalanguage for C++

Carolyn K. Duby, Scott Meyers and Steven P. Reiss

October 1992


C++ is an expressive language, but it does not allow software developers to say all the things about their systems that they need to be able to say. In particular, C++ offers no way to express many important constraints on a system's design, implementation, and presentation. In this paper, we describe CCEL, a metalanguage for C++ that allows software developers to express constraints on C++ designs and implementations, and we describe Clean++, a system that checks C++ code for violations of CCEL constraints. CCEL is designed for practical, real-world use, and the examples in this paper demonstrate its power and flexibility.

(complete text in pdf or gzipped postscript)