Affiliation:
1. University of Copenhagen, Denmark
2. Inria, France
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.
Publisher
Association for Computing Machinery (ACM)
Subject
Safety, Risk, Reliability and Quality,Software
Cited by
10 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. An ML-Style Module System for Cross-Stage Type Abstraction in Multi-stage Programming;Lecture Notes in Computer Science;2024
2. Shape-Constrained Array Programming with Size-Dependent Types;Proceedings of the 11th ACM SIGPLAN International Workshop on Functional High-Performance and Numerical Computing;2023-08-30
3. AD for an Array Language with Nested Parallelism;SC22: International Conference for High Performance Computing, Networking, Storage and Analysis;2022-11
4. Towards size-dependent types for array programming;Proceedings of the 7th ACM SIGPLAN International Workshop on Libraries, Languages and Compilers for Array Programming;2021-06-17
5. Dataset Sensitive Autotuning of Multi-versioned Code Based on Monotonic Properties;Lecture Notes in Computer Science;2021