{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,1,18]],"date-time":"2026-01-18T03:20:08Z","timestamp":1768706408083,"version":"3.49.0"},"reference-count":62,"publisher":"Association for Computing Machinery (ACM)","issue":"ICFP","license":[{"start":{"date-parts":[[2018,7,30]],"date-time":"2018-07-30T00:00:00Z","timestamp":1532908800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["Proc. ACM Program. Lang."],"published-print":{"date-parts":[[2018,7,30]]},"abstract":"<jats:p>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.<\/jats:p>","DOI":"10.1145\/3236792","type":"journal-article","created":{"date-parts":[[2018,7,31]],"date-time":"2018-07-31T19:41:18Z","timestamp":1533066078000},"page":"1-30","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":10,"title":["Static interpretation of higher-order modules in Futhark: functional GPU programming in the large"],"prefix":"10.1145","volume":"2","author":[{"given":"Martin","family":"Elsman","sequence":"first","affiliation":[{"name":"University of Copenhagen, Denmark"}]},{"given":"Troels","family":"Henriksen","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Denmark"}]},{"given":"Danil","family":"Annenkov","sequence":"additional","affiliation":[{"name":"Inria, France"}]},{"given":"Cosmin E.","family":"Oancea","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Denmark"}]}],"member":"320","published-online":{"date-parts":[[2018,7,30]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2007.11.009"},{"key":"e_1_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/2898354"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1145\/3236950.3236955"},{"key":"e_1_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2007.01.028"},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10817-011-9219-0"},{"key":"e_1_2_2_6_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.42122"},{"key":"e_1_2_2_7_1","volume-title":"Vector models for data-parallel computing","author":"Blelloch Guy E","unstructured":"Guy E Blelloch . 1990. Vector models for data-parallel computing . Vol. 75 . MIT press Cambridge . Guy E Blelloch. 1990. Vector models for data-parallel computing. Vol. 75. MIT press Cambridge."},{"key":"e_1_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926354.1926358"},{"key":"e_1_2_2_9_1","volume-title":"Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant","author":"Chlipala Adam","unstructured":"Adam Chlipala . 2013. Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant . MIT Press . Adam Chlipala. 2013. Certified Programming with Dependent Types: A Pragmatic Introduction to the Coq Proof Assistant. MIT Press."},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103736.2103740"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-37075-5_28"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009892"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.entcs.2007.01.021"},{"key":"e_1_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190229"},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/317636.317800"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627390"},{"key":"e_1_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1145\/507635.507639"},{"key":"e_1_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1007\/s001650200016"},{"key":"e_1_2_2_19_1","volume-title":"Superieur. In Proceedings of the Second Scandinavian Logic Symposium. North-Holland, 63\u201392","author":"Girard Jean Yves","year":"1971","unstructured":"Jean Yves Girard . 1971 . Interpretation Fonctionnelle et Elimination des Coupures de l\u2019Arithmetique d\u2019Ordre Superieur. In Proceedings of the Second Scandinavian Logic Symposium. North-Holland, 63\u201392 . Jean Yves Girard. 1971. Interpretation Fonctionnelle et Elimination des Coupures de l\u2019Arithmetique d\u2019Ordre Superieur. In Proceedings of the Second Scandinavian Logic Symposium. North-Holland, 63\u201392."},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926354.1926359"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/174675.176927"},{"key":"e_1_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/96709.96744"},{"key":"e_1_2_2_23_1","doi-asserted-by":"crossref","unstructured":"Robert Harper and Christopher Stone. 2000. Proof Language and Interaction. MIT Press Cambridge MA USA Chapter A Type-theoretic Interpretation of Standard ML 341\u2013387. Robert Harper and Christopher Stone. 2000. Proof Language and Interaction. MIT Press Cambridge MA USA Chapter A Type-theoretic Interpretation of Standard ML 341\u2013387.","DOI":"10.7551\/mitpress\/5641.003.0019"},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2975991.2975997"},{"key":"e_1_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/2636228.2636238"},{"key":"e_1_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2935323.2935326"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627388"},{"key":"e_1_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/3062341.3062354"},{"key":"e_1_2_2_29_1","volume-title":"Higher-Order Functions for a High-Performance Programming Language for GPUs. Master\u2019s thesis. Department of Computer Science","author":"Hovgaard Anders Kiel","unstructured":"Anders Kiel Hovgaard . 2018. Higher-Order Functions for a High-Performance Programming Language for GPUs. Master\u2019s thesis. Department of Computer Science , University of Copenhagen , Universitetsparken 5, DK-2100, Denmark. Anders Kiel Hovgaard. 2018. Higher-Order Functions for a High-Performance Programming Language for GPUs. Master\u2019s thesis. Department of Computer Science, University of Copenhagen, Universitetsparken 5, DK-2100, Denmark."},{"key":"e_1_2_2_30_1","volume-title":"A Programming Language","author":"Iverson Kenneth E.","unstructured":"Kenneth E. Iverson . 1962. A Programming Language . John Wiley and Sons, Inc. Kenneth E. Iverson. 1962. A Programming Language. John Wiley and Sons, Inc."},{"key":"e_1_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/641876.641879"},{"key":"e_1_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.5555\/5280.5292"},{"key":"e_1_2_2_33_1","doi-asserted-by":"publisher","DOI":"10.1145\/3122948.3122952"},{"key":"e_1_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1190216.1190245"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1145\/199448.199476"},{"key":"e_1_2_2_36_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796800003683"},{"key":"e_1_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/1863523.1863533"},{"key":"e_1_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500595"},{"key":"e_1_2_2_39_1","volume-title":"The Definition of Standard ML (Revised)","author":"Milner Robin","unstructured":"Robin Milner , Mads Tofte , Robert Harper , and David MacQueen . 1997. The Definition of Standard ML (Revised) . MIT Press . Robin Milner, Mads Tofte, Robert Harper, and David MacQueen. 1997. The Definition of Standard ML (Revised). MIT Press."},{"key":"e_1_2_2_40_1","doi-asserted-by":"publisher","DOI":"10.1145\/2847538.2847541"},{"key":"e_1_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2047862.2047883"},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1145\/351240.351267"},{"key":"e_1_2_2_43_1","volume-title":"Chris Casinghino, Marco Gaboardi, Michael Greenberg, C \u02c7 at \u02c7 alin Hri\u0163cu, Vilhelm Sj\u00f6berg, and Brent Yorgey.","author":"Pierce Benjamin C.","year":"2016","unstructured":"Benjamin C. Pierce , Arthur Azevedo de Amorim , Chris Casinghino, Marco Gaboardi, Michael Greenberg, C \u02c7 at \u02c7 alin Hri\u0163cu, Vilhelm Sj\u00f6berg, and Brent Yorgey. 2016 . Software Foundations. Electronic textbook. Version 4.0. http:\/\/www.cis.upenn. edu\/~bcpierce\/sf . Benjamin C. Pierce, Arthur Azevedo de Amorim, Chris Casinghino, Marco Gaboardi, Michael Greenberg, C \u02c7 at \u02c7 alin Hri\u0163cu, Vilhelm Sj\u00f6berg, and Brent Yorgey. 2016. Software Foundations. Electronic textbook. Version 4.0. http:\/\/www.cis.upenn. edu\/~bcpierce\/sf ."},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.5555\/2512979"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/1086365.1086371"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/199448.199452"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2450136.2450137"},{"key":"e_1_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1017\/S0956796814000264"},{"key":"e_1_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.5555\/645815.668885"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1145\/317636.317801"},{"key":"e_1_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/158511.158702"},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1145\/2858949.2784754"},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.5555\/3049832.3049841"},{"key":"e_1_2_2_54_1","unstructured":"Joel Svensson. 2011. Obsidian: GPU Kernel Programming in Haskell. Ph.D. Dissertation. Chalmers University of Technology. Joel Svensson. 2011. Obsidian: GPU Kernel Programming in Haskell. Ph.D. Dissertation. Chalmers University of Technology."},{"key":"e_1_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/1159876.1159883"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(00)00053-0"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.2307\/2271658"},{"key":"e_1_2_2_58_1","doi-asserted-by":"publisher","DOI":"10.1145\/2951913.2951924"},{"key":"e_1_2_2_59_1","volume-title":"Proceedings of the 1999 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. 13\u201318","author":"Veldhuizen Todd L.","year":"1999","unstructured":"Todd L. Veldhuizen . 1999 . C++ Templates as Partial Evaluation . In Proceedings of the 1999 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. 13\u201318 . Technical report BRICS-NS-99-1. Todd L. Veldhuizen. 1999. C++ Templates as Partial Evaluation. In Proceedings of the 1999 ACM SIGPLAN Workshop on Partial Evaluation and Semantics-Based Program Manipulation. 13\u201318. Technical report BRICS-NS-99-1."},{"key":"e_1_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/41625.41653"},{"key":"e_1_2_2_61_1","doi-asserted-by":"publisher","DOI":"10.1145\/75277.75283"},{"key":"e_1_2_2_62_1","volume-title":"Proceedings of ML\/OCaml Workshop","author":"White Leo","year":"2015","unstructured":"Leo White , Fr\u00e9d\u00e9ric Bour , and Jeremy Yallop . 2015 . Modular implicits. EPTCS 198, 2 (December 2015), 22\u201363 . In Proceedings of ML\/OCaml Workshop 2014. arXiv:1512.01438. Leo White, Fr\u00e9d\u00e9ric Bour, and Jeremy Yallop. 2015. Modular implicits. EPTCS 198, 2 (December 2015), 22\u201363. In Proceedings of ML\/OCaml Workshop 2014. arXiv:1512.01438."}],"container-title":["Proceedings of the ACM on Programming Languages"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3236792","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3236792","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T21:41:28Z","timestamp":1750282888000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3236792"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,7,30]]},"references-count":62,"journal-issue":{"issue":"ICFP","published-print":{"date-parts":[[2018,7,30]]}},"alternative-id":["10.1145\/3236792"],"URL":"https:\/\/doi.org\/10.1145\/3236792","relation":{},"ISSN":["2475-1421"],"issn-type":[{"value":"2475-1421","type":"electronic"}],"subject":[],"published":{"date-parts":[[2018,7,30]]},"assertion":[{"value":"2018-07-30","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}