Static Interpretation of Higher-Order Modules in Futhark: Functional GPU Programming in the Large
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 formalized 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.
Tue 25 SepDisplayed time zone: Guadalajara, Mexico City, Monterrey change
10:30 - 12:00 | Compilation and ConcurrencyResearch Papers at Stifel Theatre Chair(s): Heather Miller Carnegie Mellon University | ||
10:30 22mTalk | Competitive Parallelism: Getting Your Priorities Right Research Papers DOI | ||
10:52 22mTalk | Static Interpretation of Higher-Order Modules in Futhark: Functional GPU Programming in the Large Research Papers Martin Elsman University of Copenhagen, Denmark, Troels Henriksen University of Copenhagen, Denmark, Danil Annenkov Department of Computer Science, University of Copenhagen, Cosmin Oancea University of Copenhagen, Denmark Link to publication DOI | ||
11:15 22mTalk | Finitary Polymorphism for Optimizing Type-Directed Compilation Research Papers Atsushi Ohori Tohoku University, Japan, Katsuhiro Ueno Tohoku University, Hisayuki Mima Tohoku University DOI | ||
11:37 22mTalk | Fault Tolerant Functional Reactive Programming (Functional Pearl) Research Papers Ivan Perez National Institute of Aerospace, USA DOI |