6-8 June 2018
University of Zurich, Department of Chemistry C
CET timezone

Lecture: Mixed Language Programming

7 Jun 2018, 09:00
1h 15m
Y11 F 06 (University of Zurich, Department of Chemistry C)

Y11 F 06

University of Zurich, Department of Chemistry C

University of Zurich, Irchel Campus Department of Chemistry C Winterthurerstrasse 190 8057 Zurich Switzerland


Hans Pabst (Intel Semiconductor AG) Mikko Byckling (Intel Finland)


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.

Presentation Materials