{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,18]],"date-time":"2026-06-18T05:56:23Z","timestamp":1781762183761,"version":"3.54.5"},"publisher-location":"New York, NY, USA","reference-count":55,"publisher":"ACM","license":[{"start":{"date-parts":[[2017,6,14]],"date-time":"2017-06-14T00:00:00Z","timestamp":1497398400000},"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":[],"published-print":{"date-parts":[[2017,6,14]]},"DOI":"10.1145\/3062341.3062354","type":"proceedings-article","created":{"date-parts":[[2017,6,14]],"date-time":"2017-06-14T10:01:04Z","timestamp":1497434464000},"page":"556-571","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":100,"title":["Futhark: purely functional GPU-programming with nested parallelism and in-place array updates"],"prefix":"10.1145","author":[{"given":"Troels","family":"Henriksen","sequence":"first","affiliation":[{"name":"University of Copenhagen, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Niels G. W.","family":"Serup","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Martin","family":"Elsman","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Fritz","family":"Henglein","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Cosmin E.","family":"Oancea","sequence":"additional","affiliation":[{"name":"University of Copenhagen, Denmark"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2017,6,14]]},"reference":[{"key":"e_1_3_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1145\/2898354"},{"key":"e_1_3_2_2_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/1869459.1869469"},{"key":"e_1_3_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2015.17"},{"key":"e_1_3_2_2_4_1","doi-asserted-by":"publisher","DOI":"10.5555\/646831.707715"},{"key":"e_1_3_2_2_5_1","volume-title":"Uniqueness Typing for Functional Languages with Graph Rewriting Semantics. Mathematical Structures in Computer Science, 6(6):579\u2013612","author":"Barendsen E.","year":"1996","unstructured":"E. Barendsen and S. Smetsers . Uniqueness Typing for Functional Languages with Graph Rewriting Semantics. Mathematical Structures in Computer Science, 6(6):579\u2013612 , 1996 . E. Barendsen and S. Smetsers. Uniqueness Typing for Functional Languages with Graph Rewriting Semantics. Mathematical Structures in Computer Science, 6(6):579\u2013612, 1996."},{"key":"e_1_3_2_2_6_1","volume-title":"Procs. of the 9th Python in Science Conference","author":"Bergstra J.","year":"2010","unstructured":"J. Bergstra , O. Breuleux , F. Bastien , P. Lamblin , R. Pascanu , G. Desjardins , J. Turian , D. Warde-Farley , and Y. Bengio . Theano: A CPU and GPU Math Compiler in Python. In S. van der Walt and J. Millman, editors , Procs. of the 9th Python in Science Conference , 2010 . J. Bergstra, O. Breuleux, F. Bastien, P. Lamblin, R. Pascanu, G. Desjardins, J. Turian, D. Warde-Farley, and Y. Bengio. Theano: A CPU and GPU Math Compiler in Python. In S. van der Walt and J. Millman, editors, Procs. of the 9th Python in Science Conference, 2010."},{"key":"e_1_3_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1145\/2364527.2364563"},{"key":"e_1_3_2_2_8_1","doi-asserted-by":"publisher","DOI":"10.1145\/2442516.2442525"},{"key":"e_1_3_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1093\/comjnl\/32.2.122"},{"key":"e_1_3_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1109\/12.42122"},{"key":"e_1_3_2_2_11_1","volume-title":"Vector models for data-parallel computing","author":"Blelloch G. E.","year":"1990","unstructured":"G. E. Blelloch . Vector models for data-parallel computing , volume 75 . MIT press Cambridge , 1990 . G. E. Blelloch. Vector models for data-parallel computing, volume 75. MIT press Cambridge, 1990."},{"key":"e_1_3_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1006\/jpdc.1994.1038"},{"key":"e_1_3_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2854038.2854042"},{"key":"e_1_3_2_2_14_1","doi-asserted-by":"publisher","DOI":"10.1145\/1941553.1941562"},{"key":"e_1_3_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926354.1926358"},{"key":"e_1_3_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2015.44"},{"key":"e_1_3_2_2_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/IISWC.2009.5306797"},{"key":"e_1_3_2_2_18_1","doi-asserted-by":"publisher","DOI":"10.1145\/2103736.2103740"},{"key":"e_1_3_2_2_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627375"},{"key":"e_1_3_2_2_20_1","volume-title":"BigLearn","author":"Collobert R.","year":"2011","unstructured":"R. Collobert , K. Kavukcuoglu , and C. Farabet . Torch7: A Matlab-like Environment for Machine Learning . In BigLearn , Neural Information Processing Systems , 2011 . R. Collobert, K. Kavukcuoglu, and C. Farabet. Torch7: A Matlab-like Environment for Machine Learning. In BigLearn, Neural Information Processing Systems, 2011."},{"key":"e_1_3_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/2212736.2212744"},{"key":"e_1_3_2_2_22_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254066"},{"key":"e_1_3_2_2_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627390"},{"key":"e_1_3_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/512529.512532"},{"key":"e_1_3_2_2_25_1","doi-asserted-by":"publisher","DOI":"10.1145\/1168857.1168877"},{"key":"e_1_3_2_2_26_1","doi-asserted-by":"publisher","DOI":"10.1145\/2581122.2544160"},{"key":"e_1_3_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1145\/1075382.1075385"},{"key":"e_1_3_2_2_28_1","doi-asserted-by":"publisher","DOI":"10.1145\/2502323.2502328"},{"key":"e_1_3_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/2627373.2627388"},{"key":"e_1_3_2_2_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/2636228.2636238"},{"key":"e_1_3_2_2_31_1","doi-asserted-by":"publisher","DOI":"10.1145\/2975991.2975997"},{"key":"e_1_3_2_2_32_1","doi-asserted-by":"publisher","DOI":"10.1145\/2935323.2935326"},{"key":"e_1_3_2_2_33_1","volume-title":"June","author":"Hoare G.","year":"2013","unstructured":"G. Hoare . The Rust Programming Language , June 2013 . G. Hoare. The Rust Programming Language, June 2013."},{"key":"e_1_3_2_2_34_1","doi-asserted-by":"publisher","DOI":"10.1145\/1950365.1950409"},{"key":"e_1_3_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1109\/PACT.2015.46"},{"key":"e_1_3_2_2_36_1","volume-title":"Optimizing Compilers for Modern Architectures: A Dependence-based Approach","author":"Kennedy K.","year":"2002","unstructured":"K. Kennedy and J. R. Allen . Optimizing Compilers for Modern Architectures: A Dependence-based Approach . Morgan Kaufmann Publishers Inc ., 2002 . K. Kennedy and J. R. Allen. Optimizing Compilers for Modern Architectures: A Dependence-based Approach. Morgan Kaufmann Publishers Inc., 2002."},{"key":"e_1_3_2_2_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009869"},{"key":"e_1_3_2_2_38_1","doi-asserted-by":"publisher","DOI":"10.1109\/MICRO.2014.23"},{"key":"e_1_3_2_2_39_1","doi-asserted-by":"publisher","DOI":"10.1145\/2500365.2500595"},{"key":"e_1_3_2_2_40_1","volume-title":"Envelopes and Barbed Wire. In Proc. 5th ACM Conf. on Functional Programming Languages and Computer Architecture (FPCA)","author":"Meijer E.","year":"1991","unstructured":"E. Meijer , M. Fokkinga , and R. Paterson . Functional Programming with Bananas, Lenses , Envelopes and Barbed Wire. In Proc. 5th ACM Conf. on Functional Programming Languages and Computer Architecture (FPCA) , 1991 . E. Meijer, M. Fokkinga, and R. Paterson. Functional Programming with Bananas, Lenses, Envelopes and Barbed Wire. In Proc. 5th ACM Conf. on Functional Programming Languages and Computer Architecture (FPCA), 1991."},{"key":"e_1_3_2_2_41_1","doi-asserted-by":"publisher","DOI":"10.1145\/2254064.2254124"},{"key":"e_1_3_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.5555\/2738600.2738627"},{"key":"e_1_3_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/232627.232630"},{"key":"e_1_3_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926449"},{"key":"e_1_3_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2791321.2791333"},{"key":"e_1_3_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1145\/2491956.2462176"},{"key":"e_1_3_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1145\/2967938.2967950"},{"key":"e_1_3_2_2_48_1","doi-asserted-by":"publisher","DOI":"10.1145\/2784731.2784754"},{"key":"e_1_3_2_2_49_1","doi-asserted-by":"publisher","DOI":"10.5555\/3049832.3049841"},{"key":"e_1_3_2_2_50_1","volume-title":"Parboil: A revised benchmark suite for scientific and commercial throughput computing","author":"Stratton J. A.","year":"2012","unstructured":"J. A. Stratton , C. Rodrigues , I.-J. Sung , N. Obeid , L.-W. Chang , N. Anssari , G. D. Liu , and W.-m. W. Hwu . Parboil: A revised benchmark suite for scientific and commercial throughput computing . Center for Reliable and High-Performance Computing , 127, 2012 . J. A. Stratton, C. Rodrigues, I.-J. Sung, N. Obeid, L.-W. Chang, N. Anssari, G. D. Liu, and W.-m. W. Hwu. Parboil: A revised benchmark suite for scientific and commercial throughput computing. Center for Reliable and High-Performance Computing, 127, 2012."},{"key":"e_1_3_2_2_51_1","doi-asserted-by":"publisher","DOI":"10.1145\/2584665"},{"key":"e_1_3_2_2_53_1","volume-title":"October","author":"Tarditi D.","year":"2006","unstructured":"D. Tarditi , S. Puri , and J. Oglesby . Accelerator: Using Data Parallelism to Program GPUs for General-Purpose Uses. Technical report , October 2006 . D. Tarditi, S. Puri, and J. Oglesby. Accelerator: Using Data Parallelism to Program GPUs for General-Purpose Uses. Technical report, October 2006."},{"key":"e_1_3_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/1926385.1926436"},{"key":"e_1_3_2_2_55_1","doi-asserted-by":"publisher","DOI":"10.1145\/2400682.2400713"},{"key":"e_1_3_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/1806596.1806606"}],"event":{"name":"PLDI '17: ACM SIGPLAN Conference on Programming Language Design and Implementation","location":"Barcelona Spain","acronym":"PLDI '17","sponsor":["SIGPLAN ACM Special Interest Group on Programming Languages"]},"container-title":["Proceedings of the 38th ACM SIGPLAN Conference on Programming Language Design and Implementation"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3062341.3062354","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3062341.3062354","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:36:32Z","timestamp":1750203392000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3062341.3062354"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2017,6,14]]},"references-count":55,"alternative-id":["10.1145\/3062341.3062354","10.1145\/3062341"],"URL":"https:\/\/doi.org\/10.1145\/3062341.3062354","relation":{"is-identical-to":[{"id-type":"doi","id":"10.1145\/3140587.3062354","asserted-by":"object"}]},"subject":[],"published":{"date-parts":[[2017,6,14]]},"assertion":[{"value":"2017-06-14","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}