Exu is a new approach to automated support for safe, transparent and lightweight interoperability in multilanguage software systems. The approach is safe because it enforces appropriate type compatibility across language boundaries. It is transparent since it shields software developers from the details inherent in low-level language-based interoperability mechanisms. It is lightweight for developers because it eliminates tedious and error-prone coding (e.g., JNI) and lightweight at run-time since it does not unnecessarily incur the performance overhead of distributed, IDL-based approaches. The Exu approach exploits and extends the object-oriented concept of meta-object, encapsulating interoperability implementation in meta-classes so that developers can produce interoperating code by simply using meta-inheritance. An example application of Exu to the development of Java/C++ (i.e., multilanguage) programs illustrates the safety and transparency advantages of the approach. Comparing the performance of the Java/C++ programs produced by Exu to the same set of programs developed using IDL-based approaches provides preliminary evidence of the performance advantages of Exu.
[1]
Dale E. Parson,et al.
Java native interface idioms for C++ class hierarchies
,
2000
.
[2]
Evgeniy Gabrilovich,et al.
JNI-C++ integration made easy
,
2001
.
[3]
Jack C. Wileden,et al.
A meta-object based approach to finite element modeling
,
2001
.
[4]
Martín Abadi,et al.
A Theory of Objects
,
1996,
Monographs in Computer Science.
[5]
C. M. Sperberg-McQueen,et al.
Extensible Markup Language (XML)
,
1997,
World Wide Web J..
[6]
Jack C. Wileden,et al.
Automated support for seamless interoperability in polylingual software systems
,
1996,
SIGSOFT '96.
[7]
Jack C. Wileden,et al.
Specification-level interoperability
,
1991,
CACM.
[8]
David Jordan,et al.
The Object Database Standard: ODMG 2.0
,
1997
.
[9]
Shigeru Chiba,et al.
A metaobject protocol for C++
,
1995,
OOPSLA.