Speakers
Description
This lecture motivates the idea behind software interfaces, and reminds the audience on how static type checks are performed in C++, C, and FORTRAN (compile time). The basic terminology such as explicit/implicit interfaces, pass-by-reference or by-pointer as well as passing arguments by-value are settled. Practical code snippets illustrate how to interoperate between C, C++, modern FORTRAN (ISO_C_BINDING), and how basic compatibility with legacy codes (FORTRAN 77) is achieved. The focus will be on ISO_C_BINDING methodology, but practical hints are given on limitations as well as performance impact. Tools to automate language interoperability (to generate interfaces) are briefly mentioned, and low-level recipes for NM and LD/D are given (extract symbol names, wrap and intercept function calls). The lecture intends to build a solid base as well as practical collection for the following hands-on.