%0 Conference Proceedings %T Expressing and Applying C++ Code Transformations for the HDF5 API Through a DSL %+ Technical University of Ostrava [Ostrava] (VSB) %+ Faculdade de Engenharia da Universidade do Porto (FEUP) %A Golasowski, Martin %A Bispo, João %A Martinovič, Jan %A Slaninová, Kateřina %A Cardoso, João %Z Part 4: Engineering of Enterprise Software Products %< avec comité de lecture %( Lecture Notes in Computer Science %B 16th IFIP International Conference on Computer Information Systems and Industrial Management (CISIM) %C Bialystok, Poland %Y Khalid Saeed %Y Władysław Homenda %Y Rituparna Chaki %I Springer International Publishing %3 Computer Information Systems and Industrial Management %V LNCS-10244 %P 303-314 %8 2017-06-16 %D 2017 %R 10.1007/978-3-319-59105-6_26 %K HDF5 %K Domain specific language %K LARA %K Source-to-source %K Aspect oriented %K Clava %K Code generation %Z Computer Science [cs] %Z Humanities and Social Sciences/Library and information sciencesConference papers %X Hierarchical Data Format (HDF5) is a popular binary storage solution in high performance computing (HPC) and other scientific fields. It has bindings for many popular programming languages, including C++, which is widely used in the HPC field. Its C++ API requires mapping of the native C++ data types to types native to the HDF5 API. This task can be error prone, especially when working with complex data structures, which are usually stored using HDF5 compound data types. Due to the lack of a comprehensive reflection mechanism in C++, the mapping code for data manipulation has to be hand-written for each compound type separately. This approach is vulnerable to bugs and mistakes, which can be eliminated by using an automated code generation phase. In this paper we present an approach implemented in the LARA language and supported by the tool Clava, which allows us to automate the generation of the HDF5 data access code for complex data structures in C++. %G English %Z TC 8 %2 https://inria.hal.science/hal-01656228/document %2 https://inria.hal.science/hal-01656228/file/448933_1_En_26_Chapter.pdf %L hal-01656228 %U https://inria.hal.science/hal-01656228 %~ SHS %~ IFIP-LNCS %~ IFIP %~ IFIP-TC %~ IFIP-TC8 %~ IFIP-CISIM %~ IFIP-LNCS-10244