Back to Search
Start Over
Static interpretation of higher-order modules in Futhark: functional GPU programming in the large
- 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.
- Subjects :
- Computer science
Modularity
0102 computer and information sciences
02 engineering and technology
computer.software_genre
01 natural sciences
Coq formal proof
Modules / packages
0202 electrical engineering, electronic engineering, information engineering
[INFO]Computer Science [cs]
functional languages
Safety, Risk, Reliability and Quality
Core language
Fomalisation
Functional programming
[INFO.INFO-PL]Computer Science [cs]/Programming Languages [cs.PL]
Programming language
modules
GPGPU
compilers
020207 software engineering
Semantics
Parallel programming languages
010201 computation theory & mathematics
Compiler
Purely functional
General-purpose computing on graphics processing units
computer
Software
Compile time
Subjects
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⟩