HAL will be down for maintenance from Friday, June 10 at 4pm through Monday, June 13 at 9am. More information
Skip to Main content Skip to Navigation
Journal articles

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.
Document type :
Journal articles
Complete list of metadata

Cited literature [52 references]  Display  Hide  Download

https://hal.inria.fr/hal-01883524
Contributor : Danil Annenkov Connect in order to contact the contributor
Submitted on : Tuesday, October 2, 2018 - 1:44:36 PM
Last modification on : Wednesday, April 27, 2022 - 3:51:37 AM
Long-term archiving on: : Thursday, January 3, 2019 - 2:37:04 PM

File

ICFP18-modules.pdf
Files produced by the author(s)

Identifiers

Citation

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, ACM, 2018, 2 (ICFP), pp.97:1--97:30. ⟨10.1145/3236792⟩. ⟨hal-01883524⟩

Share

Metrics

Record views

124

Files downloads

170