C++Now 2018 has ended
Back To Schedule
Tuesday, May 8 • 11:50am - 12:35pm
Fortransformers: A Field Study

Log in to save this to your schedule, view media, leave feedback and see who's attending!

Feedback form is now closed.
It's 2018 - there is a new programming language almost every other week - and still we have to bother with Fortran. The language of course has its advantages but from the perspective of a C++ developer, it lacks features like function overloading, templates and generic containers, to name just a few.
When my team decided to translate two of our main Fortran-libraries to C++ we set out the following conditions: maintain the runtime performance and, even more important, do not upset the Fortran-developers, by modifying the sources as little as possible. Especially syntax and semantics of arrays should not change, i.e. one-based, multi-dimensional, whole-array-operations. Since existing Fortran to C/C++ translators like f2c and fable only support Fortran 77, we had to develop our own tool. Furthermore, we needed a C++ expression template array-library that satisfied the requirements.
This talk will bring some light into the dark corners of Fortran translation tools and also show the benefits of expression template pioneer Blitz++.
It will cover the evaluation of translation tools and expression template libraries, culminating in an almost-automatic version of f2c and a modernized version of Blitz++ as DSEL for Fortran-like array-operation. We will review code examples before and after the translation process and analyse the performance of the C++ libraries versus their Fortran-versions.
So, open your Fortran storages and trunks and let in a fresh cool breeze of modern C++.

avatar for Tobias Loew

Tobias Loew

Software Architect, steag energy services
C++ developer for now almost 20 years with PhD in mathematics and a background in functional languages and their mathematical models

Tuesday May 8, 2018 11:50am - 12:35pm MDT
Hudson Commons