Static Interpretation of Higher-Order Modules in Futhark: Functional GPU Programming in the Large

被引:10
|
作者
Elsman, Martin [1 ]
Henriksen, Troels [1 ]
Annenkov, Danil [2 ]
Oancea, Cosmin E. [1 ]
机构
[1] Univ Copenhagen, Dept Comp Sci, Copenhagen, Denmark
[2] INRIA, GALLINETTE Res Team, Nantes, France
关键词
modules; GPGPU; functional languages; compilers; TYPED LAMBDA-CALCULUS; NORMALIZATION;
D O I
10.1145/3236792
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页数:30
相关论文
共 50 条
  • [11] Expression QTL Modules as Functional Components Underlying Higher-Order Phenotypes
    Bao, Lei
    Xia, Xuefeng
    Cui, Yan
    PLOS ONE, 2010, 5 (12):
  • [12] A type system for higher-order modules
    Dreyer, D
    Crary, K
    Harper, R
    ACM SIGPLAN NOTICES, 2003, 38 (01) : 236 - 249
  • [13] An algebraic framework for higher-order modules
    Jiménez, R
    Orejas, F
    FM'99-FORMAL METHODS, VOL II, 1999, 1709 : 1778 - 1797
  • [14] Resolving Inductive Definitions with Binders in Higher-Order Typed Functional Programming
    Lakin, Matthew R.
    Pitts, Andrew M.
    PROGRAMMING LANGUAGES AND SYSTEMS, PROCEEDINGS, 2009, 5502 : 47 - 61
  • [15] Hobbits for Haskell: A Library for Higher-Order Encodings in Functional Programming Languages
    Westbrook, Edwin
    Frisby, Nicolas
    Brauner, Paul
    HASKELL 11: PROCEEDINGS OF THE 2011 ACM SIGPLAN HASKELL SYMPOSIUM, 2011, : 35 - 46
  • [16] Hobbits for Haskell: A Library for Higher-Order Encodings in Functional Programming Languages
    Westbrook, Edwin
    Frisby, Nicolas
    Brauner, Paul
    ACM SIGPLAN NOTICES, 2011, 46 (12) : 35 - 46
  • [17] Cooperation of Algebraic Constraint Domains in Higher-Order Functional and Logic Programming
    del Vado Virseda, Rafael
    ALGEBRAIC METHODOLOGY AND SOFTWARE TECHNOLOGY, 2011, 6486 : 180 - 200
  • [18] Conjunctive type systems and abstract interpretation of higher-order functional programs
    Jensen, TP
    JOURNAL OF LOGIC AND COMPUTATION, 1995, 5 (04) : 397 - 421
  • [19] Futhark: Purely Functional GPU-Programming with Nested Parallelism and In-Place Array Updates
    Henriksen, Troels
    Serup, Niels G. W.
    Elsman, Martin
    Henglein, Fritz
    Oancea, Cosmin E.
    ACM SIGPLAN NOTICES, 2017, 52 (06) : 556 - 571
  • [20] Extensional Higher-Order Logic Programming
    Charalambidis, Angelos
    Handjopoulos, Konstantinos
    Rondogiannis, Panos
    Wadge, William W.
    LOGICS IN ARTIFICIAL INTELLIGENCE, JELIA 2010, 2010, 6341 : 91 - 103