Safety at speed: in-place array algorithms from pure functional programs by safely re-using storage
Paper i proceeding, 2019

We present a purely functional array programming language that offers safe, purely functional and crash-free in-place array transformations. The language supports high-level abstractions for pure and efficient array computations that fully support equational reasoning. We show how to execute selected parts of these computations safely in-place, with the compiler guaranteeing that in-place execution does not change the computation’s result. Correctness is ensured by using an off-the-shelf-theorem prover to discharge safety conditions. Our main contribution is the idea of virtual copies for expressing re-use of arrays, and techniques for verifying their safety, which allow a pure language to include in-place transformations without weakening its transparency or rea- soning power.

Software and its engineering → Func- tional languages

Translator writing systems and compiler generators.

Författare

Markus Aronsson

Chalmers, Data- och informationsteknik, Funktionell programmering

Nicholas Smallbone

Chalmers, Data- och informationsteknik, Funktionell programmering

Mary Sheeran

Chalmers, Data- och informationsteknik, Funktionell programmering

Koen Claessen

Chalmers, Data- och informationsteknik, Funktionell programmering

FHPNC 2019 Proceedings of the 8th ACM SIGPLAN International Workshop on Functional

34-46

8th ACM SIGPLAN International Workshop on Functional High-Performance and Numerical Computing, FHPNC 2019
Berlin, Germany,

Ämneskategorier

Språkteknologi (språkvetenskaplig databehandling)

Inbäddad systemteknik

Datorsystem

DOI

10.1145/3331553.3342616

Mer information

Senast uppdaterat

2019-10-14