Craig E Rasmussen, Matthew Sottile, Sameer Shende, and Allen Malony (2005)
Bridging the language gap in scientific computing: the Chasm approach
Concurrency and Computation: Practice and Experience.
Chasm is a toolkit providing seamless language interoperability between Fortran 95 and C++. Language
interoperability is important to scientific programmers because scientific applications are predominantly
written in Fortran, while software tools are mostly written in C++. Two design features differentiate
Chasm from other related tools. First, we avoid the common-denominator type systems and programming
models found in most Interface Definition Language (IDL)-based interoperability systems. Chasm uses
the intermediate representation generated by a compiler front-end for each supported language as its
source of interface information instead of an IDL. Second, bridging code is generated for each pairwise
language binding, removing the need for a common intermediate data representation and multiple levels of
indirection between the caller and callee. These features make Chasm a simple system that performs well,
requires minimal user intervention and, in most instances, bridging code generation can be performed
automatically. Chasm is also easily extensible and highly portable.