2021
DOI: 10.1007/s11227-021-03839-9
|View full text |Cite
|
Sign up to set email alerts
|

Making legacy Fortran code type safe through automated program transformation

Abstract: Fortran is still widely used in scientific computing, and a very large corpus of legacy as well as new code is written in FORTRAN 77. In general this code is not type safe, so that incorrect programs can compile without errors. In this paper, we present a formal approach to ensure type safety of legacy Fortran code through automated program transformation. The objective of this work is to reduce programming errors by guaranteeing type safety. We present the first rigorous analysis of the type safety of FORTRAN… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
3
0

Year Published

2022
2022
2024
2024

Publication Types

Select...
3
2

Relationship

1
4

Authors

Journals

citations
Cited by 5 publications
(4 citation statements)
references
References 18 publications
0
3
0
Order By: Relevance
“…The program consists of 4 stencil applications, and a combined 90 single precision operations per grid point. Prior work allows us to make the code type safe, and extract computational kernels in the form of side-effect free functions [12]. From this point, we applied our rewrite rules to remove intermediate arrays.…”
Section: A Methodologymentioning
confidence: 99%
See 1 more Smart Citation
“…The program consists of 4 stencil applications, and a combined 90 single precision operations per grid point. Prior work allows us to make the code type safe, and extract computational kernels in the form of side-effect free functions [12]. From this point, we applied our rewrite rules to remove intermediate arrays.…”
Section: A Methodologymentioning
confidence: 99%
“…In prior work, we developed a source-to-source compiler toolchain which turns legacy Fortran 77 code into type-safe Fortran 95 [12]. This allows the code to be auto-parallelized to target GPUs [13].…”
Section: B Tytracl: a Functional Coordination Languagementioning
confidence: 99%
“…Different strategies are currently being developed to cope with this grand challenge. One strategy is to offload the architecture-dependent parallelisation tasks to the compilersee, for example, Vanderbauwhede and Takemi (2013); Vanderbauwhede and Davidson (2018); Vanderbauwhede (2021). Another strategy is to use an abstraction layer that provides a unified programming interface to different computational backends -a so-called "performance portability framework" -that allows the same code to be compiled across different HPC architectures.…”
Section: Introductionmentioning
confidence: 99%
“…In a broader context, it can be noted that program transformation algorithms are essential constituents of modern compilers for classical languages [21][22][23][24]. These are used to optimise the instructions corresponding to the original source code of a program to, e.g., minimise register use, instruction count or run time, or make optimal use of features, such as vector operations.…”
Section: Introductionmentioning
confidence: 99%