Static interpretation of higher-order modules in Futhark: functional GPU programming in the large - Inria - Institut national de recherche en sciences et technologies du numérique
Journal Articles Proceedings of the ACM on Programming Languages Year : 2018

Static interpretation of higher-order modules in Futhark: functional GPU programming in the large

Abstract

We present a higher-order module system for the purely functional data-parallel array language Futhark. The module language has the property that it is completely eliminated at compile time, yet it serves as a powerful tool for organizing libraries and complete programs. The presentation includes a static and a dynamic semantics for the language in terms of, respectively, a static type system and a provably terminating elaboration of terms into terms of an underlying target language. The development is formalised in Coq using a novel encoding of semantic objects based on products, sets, and finite maps. The module language features a unified treatment of module type abstraction and core language polymorphism and is rich enough for expressing practical forms of module composition.
Fichier principal
Vignette du fichier
ICFP18-modules.pdf (693.23 Ko) Télécharger le fichier
Origin Files produced by the author(s)
Loading...

Dates and versions

hal-01883524 , version 1 (02-10-2018)

Identifiers

Cite

Martin Elsman, Troels Henriksen, Danil Annenkov, Cosmin Oancea. Static interpretation of higher-order modules in Futhark: functional GPU programming in the large. Proceedings of the ACM on Programming Languages, 2018, 2 (ICFP), pp.97:1--97:30. ⟨10.1145/3236792⟩. ⟨hal-01883524⟩
145 View
219 Download

Altmetric

Share

More