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 条
  • [21] Extensional Higher-Order Logic Programming
    Charalambidis, Angelos
    Handjopoulos, Konstantinos
    Rondogiannis, Panagiotis
    Wadge, William W.
    ACM TRANSACTIONS ON COMPUTATIONAL LOGIC, 2013, 14 (03)
  • [22] Higher-order chemical programming style
    Banâtre, JP
    Fradet, P
    Radenac, Y
    UNCONVENTIONAL PROGRAMMING PARADIGMS, 2005, 3566 : 84 - 95
  • [23] Tabling for higher-order logic programming
    Pientka, B
    AUTOMATED DEDUCTION - CADE-20, PROCEEDINGS, 2005, 3632 : 54 - 68
  • [24] HIGHER-ORDER COMMUNICATIONS FOR CONCURRENT PROGRAMMING
    PETTOROSSI, A
    SKOWRON, A
    PARALLEL COMPUTING, 1984, 1 (3-4) : 331 - 336
  • [25] Higher-order statistics: Discussion and interpretation
    Gonzalez de la Rosa, Juan Jose
    Agueera-Perez, Agustin
    Carlos Palomares-Salas, Jose
    Moreno-Munoz, Antonio
    MEASUREMENT, 2013, 46 (08) : 2816 - 2827
  • [26] A higher-order interpretation of Deductive Tableau
    Ayari, A
    Basin, D
    JOURNAL OF SYMBOLIC COMPUTATION, 2001, 31 (05) : 487 - 520
  • [27] Higher-order symmetric duality in multiobjective programming problems under higher-order invexity
    Padhan, S. K.
    Nahak, C.
    APPLIED MATHEMATICS AND COMPUTATION, 2011, 218 (05) : 1705 - 1712
  • [28] Engineering Higher-Order Modules in SML/NJ
    Kuan, George
    MacQueen, David
    IMPLEMENTATION AND APPLICATION OF FUNCTIONAL LANGUAGES, 2009, 6041 : 218 - 235
  • [29] Static parallelization of functional programs: Elimination of higher-order functions & optimized inlining
    Herrmann, CA
    Laitenberger, J
    Lengauer, C
    Schaller, C
    EURO-PAR'99: PARALLEL PROCESSING, 1999, 1685 : 930 - 934
  • [30] A Static Higher-Order Dependency Pair Framework
    Fuhs, Carsten
    Kop, Cynthia
    PROGRAMMING LANGUAGES AND SYSTEMS, ESOP 2019: 28TH EUROPEAN SYMPOSIUM ON PROGRAMMING, 2019, 11423 : 752 - 782