Back to Search Start Over

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

Authors :
Martin Elsman
Troels Henriksen
Cosmin E. Oancea
Danil Annenkov
Department of Computer Science [Copenhagen] (DIKU)
Faculty of Science [Copenhagen]
University of Copenhagen = Københavns Universitet (KU)-University of Copenhagen = Københavns Universitet (KU)
Gallinette : vers une nouvelle génération d'assistant à la preuve (GALLINETTE)
Inria Rennes – Bretagne Atlantique
Institut National de Recherche en Informatique et en Automatique (Inria)-Institut National de Recherche en Informatique et en Automatique (Inria)-Laboratoire des Sciences du Numérique de Nantes (LS2N)
Université de Nantes - UFR des Sciences et des Techniques (UN UFR ST)
Université de Nantes (UN)-Université de Nantes (UN)-École Centrale de Nantes (ECN)-Centre National de la Recherche Scientifique (CNRS)-IMT Atlantique Bretagne-Pays de la Loire (IMT Atlantique)
Institut Mines-Télécom [Paris] (IMT)-Institut Mines-Télécom [Paris] (IMT)-Université de Nantes - UFR des Sciences et des Techniques (UN UFR ST)
Institut Mines-Télécom [Paris] (IMT)-Institut Mines-Télécom [Paris] (IMT)
Département Automatique, Productique et Informatique (IMT Atlantique - DAPI)
IMT Atlantique Bretagne-Pays de la Loire (IMT Atlantique)
Danish Council for Strategic Research (DSF) grant no. 10-092299 (HIPERFIT research center)
CoqHoTT ERC Grant 637339
European Project: 637339,H2020 ERC,ERC-2014-STG,CoqHoTT(2015)
Université de Nantes (UN)-Université de Nantes (UN)-École Centrale de Nantes (ECN)-Centre National de la Recherche Scientifique (CNRS)
University of Copenhagen = Københavns Universitet (UCPH)-University of Copenhagen = Københavns Universitet (UCPH)
Gallinette : vers une nouvelle génération d'assistant à la preuve (LS2N - équipe GALLINETTE)
Université de Nantes (UN)-Université de Nantes (UN)-École Centrale de Nantes (ECN)-Centre National de la Recherche Scientifique (CNRS)-IMT Atlantique (IMT Atlantique)
IMT Atlantique (IMT Atlantique)
Source :
Proceedings of the ACM on Programming Languages, Proceedings of the ACM on Programming Languages, ACM, 2018, 2 (ICFP), pp.97:1--97:30. ⟨10.1145/3236792⟩, Proceedings of the ACM on Programming Languages, 2018, 2 (ICFP), pp.97:1--97:30. ⟨10.1145/3236792⟩
Publication Year :
2018
Publisher :
HAL CCSD, 2018.

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.

Details

Language :
English
ISSN :
24751421
Database :
OpenAIRE
Journal :
Proceedings of the ACM on Programming Languages, Proceedings of the ACM on Programming Languages, ACM, 2018, 2 (ICFP), pp.97:1--97:30. ⟨10.1145/3236792⟩, Proceedings of the ACM on Programming Languages, 2018, 2 (ICFP), pp.97:1--97:30. ⟨10.1145/3236792⟩
Accession number :
edsair.doi.dedup.....1dfe8c346b0004948019e6098d5989f0
Full Text :
https://doi.org/10.1145/3236792⟩