Welcome... |
OpenC++ is a version of C++ with a Metaobject Protocol. In other words, it is a tool of source-code translation for C++. Programmers can easily implement various kinds of translation so that they can define new syntax, new annotation, and new object behavior. OpenC++ is useful if they need, for example,
|
|
News... |
The OpenC++ project has moved to the open source world!Now, the latest version of this software is available from the OpenC++ pages on SourceForge.net. (Developer's page). The development is open to the public; please join with us. If you're interested in the current snapshot, it is on the CVS. |
|
Availability... |
OpenC++ version 2.5.12 is now available (October, 2001).
The license for OpenC++ follows the spirit of open source. Although the license is not one of the well-known standard license like GPL since it was developed long time ago and some part of the code is owned by Xerox, you can include this software in your commercial product without opening the source code to the public. For more details, see the copyright notices. | |
Mailing List... |
The mailing list is
opencxx-users@lists.sourceforge.net.
Note that only the list subscribers can post a message to the list. For the subscription, vist this page. The list archive is available on sourceforge.net. |
|
Old versions... |
OpenC++
version 2.4 (released on March 7, 1997)
This version includes OpenC++ mentioned in the OOPSLA'95 paper. This distribution package includes source code of the compiler, a manual, and sample programs. To run it, GNU g++ 2.x running on SunOS 4.x, Solaris 2.x, or Linux is required. Other platforms have not been tested. This package is free to use. For details, see the copyright notice. OpenC++ version 1 is also available (version 1.2 distribution package, 358Kb) . |
|
Publications... |
Shigeru Chiba In Proceedings of the ACM Conference on Object-Oriented Programming Systems, Languages, and Applications (OOPSLA), page 285-299, October 1995. (An overview of the compile-time reflection provided by OpenC++)
Shigeru Chiba In Proc. of Technology of Object-Oriented Languages and Systems (TOOLS Pacific '98), Australia, November, IEEE Press, 1998. (Details of the OpenC++ MOP.)
Shigeru Chiba Technical Report 97-06, Department of Information Science, University of Tokyo, 1997. (A mini survey of implementation techniques for reflective languages)
Shigeru Chiba and Takashi Masuda In Proceedings of European Conference on Object Oriented Programming (ECOOP), LNCS 707, page 482-501, 1993. (An overview of runtime reflection provided by OpenC++ version 1)
Shigeru Chiba, Gregor Kiczales and John Lamping In Proceedings of ISOTAS'96, LNCS 1049, page 157-172, March 1996. (A design note of meta architectures)
Shigeru Chiba Technical Report SPL-96-024, Xerox PARC, 1996.
Shigeru Chiba Technical Report 93-3, Department of Information Science, University of Tokyo, 1993. |
|
Related Work... |
Several papers about research using OpenC++ version 2 were presented
at
OOPSLA'98 workshop on reflective programming in C++ and Java.
The OpenC++ project is one of research activities on reflection, metaobject protocols, and open implementation. To know more about the background, see the Open Implementation home page. OpenC++ version 1 is found in the following papers as a research platform: A Metaobject Architecture for Fault Tolerant Distributed Systems:
The FRIENDS Approach
Using Metaobject Protocols to Implement Atomic Data Types
|
|
Related Projects... |
JavassistJavassist is yet another reflective system for Java. It is a class library for editing bytecodes at runtime in Java. Unlike other similar systems, Javassist is based on reflection and hence it provides higher-level abstraction.OJOJ is a Java preprocessor with a metaobject protocol similar to OpenC++. |