{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,25]],"date-time":"2026-06-25T09:06:41Z","timestamp":1782378401175,"version":"3.54.5"},"reference-count":92,"publisher":"Association for Computing Machinery (ACM)","issue":"3","license":[{"start":{"date-parts":[[2019,5,31]],"date-time":"2019-05-31T00:00:00Z","timestamp":1559260800000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/www.acm.org\/publications\/policies\/copyright_policy#Background"}],"funder":[{"name":"Australian Government Research Training Program (RTP) Scholarship"}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":["ACM Trans. Embed. Comput. Syst."],"published-print":{"date-parts":[[2019,5,31]]},"abstract":"<jats:p>Many Internet of Things and embedded projects are event driven, and therefore require asynchronous and concurrent programming. Current proposals for C++20 suggest that coroutines will have native language support. It is timely to survey the current use of coroutines in embedded systems development. This article investigates existing research which uses or describes coroutines on resource-constrained platforms. The existing research is analysed with regard to: software platform, hardware platform, and capacity; use cases and intended benefits; and the application programming interface design used for coroutines. A systematic mapping study was performed, to select studies published between 2007 and 2018 which contained original research into the application of coroutines on resource-constrained platforms. An initial set of 566 candidate papers, collated from on-line databases, were reduced to only 35 after filters were applied, revealing the following taxonomy. The C 8 C++ programming languages were used by 22 studies out of 35. As regards hardware, 16 studies used 8- or 16-bit processors while 13 used 32-bit processors. The four most common use cases were concurrency (17 papers), network communication (15), sensor readings (9), and data flow (7). The leading intended benefits were code style and simplicity (12 papers), scheduling (9), and efficiency (8). A wide variety of techniques have been used to implement coroutines, including native macros, additional tool chain steps, new language features, and non-portable assembly language. We conclude that there is widespread demand for coroutines on resource-constrained devices. Our findings suggest that there is significant demand for a formalised, stable, well-supported implementation of coroutines in C++, designed with consideration of the special needs of resource-constrained devices, and further that such an implementation would bring benefits specific to such devices.<\/jats:p>","DOI":"10.1145\/3319618","type":"journal-article","created":{"date-parts":[[2019,6,6]],"date-time":"2019-06-06T12:28:42Z","timestamp":1559824122000},"page":"1-21","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":19,"title":["A Survey of Asynchronous Programming Using Coroutines in the Internet of Things and Embedded Systems"],"prefix":"10.1145","volume":"18","author":[{"ORCID":"https:\/\/orcid.org\/0000-0003-2904-1650","authenticated-orcid":false,"given":"Bruce","family":"Belson","sequence":"first","affiliation":[{"name":"James Cook University, Smithfield, Cairns, QLD, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Jason","family":"Holdsworth","sequence":"additional","affiliation":[{"name":"James Cook University, Smithfield, Cairns, QLD, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Wei","family":"Xiang","sequence":"additional","affiliation":[{"name":"James Cook University, Smithfield, Cairns, QLD, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Bronson","family":"Philippa","sequence":"additional","affiliation":[{"name":"James Cook University, Smithfield, Cairns, QLD, Australia"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2019,6,5]]},"reference":[{"key":"e_1_2_2_1_1","doi-asserted-by":"publisher","DOI":"10.1109\/COMST.2015.2444095"},{"key":"e_1_2_2_2_1","doi-asserted-by":"crossref","volume-title":"Small and Inexpensive Single-Board Computer for Autonomous Sailboat Control","author":"Alvira Mariano","DOI":"10.1007\/978-3-642-33084-1_10"},{"key":"e_1_2_2_3_1","doi-asserted-by":"publisher","DOI":"10.1109\/TC.2013.28"},{"key":"e_1_2_2_4_1","volume-title":"2016 15th ACM\/IEEE International Conference on Information Processing in Sensor Networks (IPSN). IEEE","author":"Andersen Michael P."},{"key":"e_1_2_2_5_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jnca.2016.10.017"},{"key":"e_1_2_2_6_1","unstructured":"AspenCore Global Media. 2017. 2017 Embedded Markets Study. http:\/\/m.eet.com\/media\/1246048\/2017-embedded-market-study.pdf.  AspenCore Global Media. 2017. 2017 Embedded Markets Study. http:\/\/m.eet.com\/media\/1246048\/2017-embedded-market-study.pdf."},{"key":"e_1_2_2_7_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.comnet.2010.05.010"},{"key":"e_1_2_2_8_1","unstructured":"Richard Barry. 2018. The FreeRTOS Kernel. https:\/\/www.freertos.org\/.  Richard Barry. 2018. The FreeRTOS Kernel. https:\/\/www.freertos.org\/."},{"key":"e_1_2_2_9_1","doi-asserted-by":"publisher","DOI":"10.1109\/TSE.2010.66"},{"key":"e_1_2_2_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_12"},{"key":"e_1_2_2_11_1","doi-asserted-by":"publisher","DOI":"10.1007\/s11235-009-9246-x"},{"key":"e_1_2_2_12_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.jss.2006.07.009"},{"key":"e_1_2_2_13_1","doi-asserted-by":"publisher","DOI":"10.1145\/2749215.2749216"},{"key":"e_1_2_2_14_1","volume-title":"Powering intelligent instruments with Lua scripting. In 2009 IEEE AUTOTESTCON","author":"Clark David L."},{"key":"e_1_2_2_15_1","doi-asserted-by":"publisher","DOI":"10.1109\/IPDPS.2007.370458"},{"key":"e_1_2_2_16_1","doi-asserted-by":"publisher","DOI":"10.1145\/366663.366704"},{"key":"e_1_2_2_17_1","first-page":"910","article-title":"Coroutines in Lua","volume":"10","author":"De Moura Ana L\u00facia","year":"2004","journal-title":"Journal of Universal Computer Science"},{"key":"e_1_2_2_18_1","unstructured":"Tom Duff. 1988. Duff\u2019s Device. https:\/\/groups.google.com\/forum\/#&excl;original\/comp.lang.c\/sWJtHn6sVps\/ESTEdYEpeLsJ.  Tom Duff. 1988. Duff\u2019s Device. https:\/\/groups.google.com\/forum\/#&excl;original\/comp.lang.c\/sWJtHn6sVps\/ESTEdYEpeLsJ."},{"key":"e_1_2_2_19_1","doi-asserted-by":"crossref","unstructured":"Adam Dunkels. 2005. About protothreads. http:\/\/dunkels.com\/adam\/pt\/about.html.  Adam Dunkels. 2005. About protothreads. http:\/\/dunkels.com\/adam\/pt\/about.html.","DOI":"10.1145\/1182807.1182811"},{"key":"e_1_2_2_20_1","doi-asserted-by":"publisher","DOI":"10.1109\/LCN.2004.38"},{"key":"e_1_2_2_21_1","doi-asserted-by":"publisher","DOI":"10.1145\/1182807.1182811"},{"key":"e_1_2_2_22_1","volume-title":"6th Symposium on Languages, Applications and Technologies (SLATE 2017)","volume":"56","author":"Durmaz Caglar","year":"2017"},{"key":"e_1_2_2_23_1","unstructured":"ECMA. 2017. ECMAScript Latest Draft (ECMA-262) Async Function Definitions. https:\/\/tc39.github.io\/ecma262\/#sec-async-function-definitions.  ECMA. 2017. ECMAScript Latest Draft (ECMA-262) Async Function Definitions. https:\/\/tc39.github.io\/ecma262\/#sec-async-function-definitions."},{"key":"e_1_2_2_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/1639950.1640058"},{"key":"e_1_2_2_25_1","doi-asserted-by":"crossref","unstructured":"Atis Elsts George Oikonomou Xenofon Fafoutis and Robert Piechocki. 2017. Internet of Things for smart homes: Lessons learned from the SPHERE case study. In 2017 Global Internet of Things Summit (GIoTS). 1--6.  Atis Elsts George Oikonomou Xenofon Fafoutis and Robert Piechocki. 2017. Internet of Things for smart homes: Lessons learned from the SPHERE case study. In 2017 Global Internet of Things Summit (GIoTS). 1--6.","DOI":"10.1109\/GIOTS.2017.8016226"},{"key":"e_1_2_2_26_1","volume-title":"USENIX Annual Technical Conference, General Track. https:\/\/dl.acm.org\/citation.cfm?id&equals;1267744","author":"Engelschall Ralf S.","year":"2000"},{"key":"e_1_2_2_27_1","doi-asserted-by":"publisher","DOI":"10.1109\/EFTA.2007.4416802"},{"key":"e_1_2_2_28_1","volume-title":"2010 World Automation Congress. 1--6.","author":"Fritzsche Rene","year":"2010"},{"key":"e_1_2_2_29_1","doi-asserted-by":"publisher","DOI":"10.1145\/781131.781133"},{"key":"e_1_2_2_30_1","unstructured":"Damien George. 2014. MicroPython - Python for microcontrollers. http:\/\/micropython.org\/.  Damien George. 2014. MicroPython - Python for microcontrollers. http:\/\/micropython.org\/."},{"key":"e_1_2_2_31_1","volume-title":"George and Paul Sokolovsky","author":"Damien","year":"2014"},{"key":"e_1_2_2_32_1","volume-title":"7th International Conference on Informatics and Systems (INFOS\u201910)","author":"Glistvain R."},{"key":"e_1_2_2_33_1","volume-title":"Technical report on C++ performance. ISO\/IEC PDTR 18015","author":"Goldthwaite Lois","year":"2006"},{"key":"e_1_2_2_35_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.future.2013.01.010"},{"key":"e_1_2_2_36_1","volume-title":"29th ACM\/IEEE Design Automation Conference (DAC\u201992)","author":"Gupta R. K."},{"key":"e_1_2_2_37_1","unstructured":"Philipp Haller and Jason Zaugg. 2016. SIP-22 - Async - Scala Documentation. http:\/\/docs.scala-lang.org\/sips\/pending\/async.html.  Philipp Haller and Jason Zaugg. 2016. SIP-22 - Async - Scala Documentation. http:\/\/docs.scala-lang.org\/sips\/pending\/async.html."},{"key":"e_1_2_2_38_1","volume-title":"Porting Lua to a microcontroller. Lua Programming Gems","author":"Hempel Ralph","year":"2008"},{"key":"e_1_2_2_39_1","unstructured":"Dominic Herity. 2015. Modern C++ in embedded systems\u2014Part 1: Myth and Reality | Embedded. https:\/\/www.embedded.com\/design\/programming-languages-and-tools\/4438660\/1\/Modern-C--in-embedded-systems---Part-1--Myth-and-Reality.  Dominic Herity. 2015. Modern C++ in embedded systems\u2014Part 1: Myth and Reality | Embedded. https:\/\/www.embedded.com\/design\/programming-languages-and-tools\/4438660\/1\/Modern-C--in-embedded-systems---Part-1--Myth-and-Reality."},{"key":"e_1_2_2_40_1","doi-asserted-by":"crossref","unstructured":"R. Inam J. M\u00e4ki-Turja M Sj\u00f6din S. M. H. Ashjaei and S. Afshar. 2011. Support for hierarchical scheduling in FreeRTOS. In ETFA2011. 1--10.  R. Inam J. M\u00e4ki-Turja M Sj\u00f6din S. M. H. Ashjaei and S. Afshar. 2011. Support for hierarchical scheduling in FreeRTOS. In ETFA2011. 1--10.","DOI":"10.1109\/ETFA.2011.6059016"},{"key":"e_1_2_2_41_1","unstructured":"ISO\/IEC. 2017. N4680 Programming Languages - C++ Extensions for Library Fundamentals. (2017). http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2017\/n4680.pdf.  ISO\/IEC. 2017. N4680 Programming Languages - C++ Extensions for Library Fundamentals. (2017). http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2017\/n4680.pdf."},{"key":"e_1_2_2_42_1","doi-asserted-by":"publisher","DOI":"10.1109\/EUC.2008.181"},{"key":"e_1_2_2_43_1","doi-asserted-by":"publisher","DOI":"10.1145\/2906363.2906372"},{"key":"e_1_2_2_44_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICCNI.2017.8123793"},{"key":"e_1_2_2_45_1","doi-asserted-by":"publisher","DOI":"10.1145\/2489798.2489802"},{"key":"e_1_2_2_46_1","doi-asserted-by":"publisher","DOI":"10.1109\/SAHCN.2007.4292873"},{"key":"e_1_2_2_47_1","doi-asserted-by":"publisher","DOI":"10.1109\/ISPA.2008.138"},{"key":"e_1_2_2_50_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2010.12.011"},{"key":"e_1_2_2_51_1","volume-title":"Fundamental algorithms (3rd. ed.).","author":"Knuth Donald E.","year":"1997"},{"key":"e_1_2_2_52_1","doi-asserted-by":"publisher","DOI":"10.1109\/BSN.2013.6575497"},{"key":"e_1_2_2_53_1","doi-asserted-by":"publisher","DOI":"10.1145\/1210268.1210270"},{"key":"e_1_2_2_54_1","doi-asserted-by":"publisher","DOI":"10.1145\/605432.605407"},{"key":"e_1_2_2_55_1","doi-asserted-by":"crossref","unstructured":"P. Levis S. Madden J. Polastre R. Szewczyk K. Whitehouse A. Woo D. Gay J. Hill M. Welsh E. Brewer and D. Culler. 2005. TinyOS: An Operating System for Sensor Networks. Springer Berlin 115--148.  P. Levis S. Madden J. Polastre R. Szewczyk K. Whitehouse A. Woo D. Gay J. Hill M. Welsh E. Brewer and D. Culler. 2005. TinyOS: An Operating System for Sensor Networks. Springer Berlin 115--148.","DOI":"10.1007\/3-540-27139-2_7"},{"key":"e_1_2_2_56_1","doi-asserted-by":"publisher","DOI":"10.1145\/960116.54016"},{"key":"e_1_2_2_57_1","doi-asserted-by":"publisher","DOI":"10.1109\/LES.2011.2112634"},{"key":"e_1_2_2_58_1","unstructured":"LLVM Project. 2018. Download LLVM releases. http:\/\/releases.llvm.org\/.  LLVM Project. 2018. Download LLVM releases. http:\/\/releases.llvm.org\/."},{"key":"e_1_2_2_59_1","doi-asserted-by":"crossref","volume-title":"The Aspect-Aware Design and Implementation of the CiAO Operating-System Family","author":"Lohmann Daniel","DOI":"10.1007\/978-3-642-35551-6_5"},{"key":"e_1_2_2_60_1","doi-asserted-by":"publisher","DOI":"10.1145\/3133910"},{"key":"e_1_2_2_61_1","volume-title":"The Internet of Things: Mapping the value beyond the hype","author":"Manyika James","year":"2015"},{"key":"e_1_2_2_62_1","volume-title":"Coroutines: A Programming Methodology, a Language Design and an Implementation. Number 95 in Lecture Notes in Computer Science","author":"Marlin Christopher D.","year":"1979"},{"key":"e_1_2_2_63_1","doi-asserted-by":"publisher","DOI":"10.1145\/1900160.1900173"},{"key":"e_1_2_2_64_1","unstructured":"Microsoft Corporation. 2018. The latest supported Visual C++ downloads. https:\/\/support.microsoft.com\/en-au\/help\/2977003\/the-latest-supported-visual-c-downloads.  Microsoft Corporation. 2018. The latest supported Visual C++ downloads. https:\/\/support.microsoft.com\/en-au\/help\/2977003\/the-latest-supported-visual-c-downloads."},{"key":"e_1_2_2_65_1","unstructured":"Eric Mittelette. 2015. Coroutines in Visual Studio 2015--Update 1--Visual C++ Team Blog. https:\/\/blogs.msdn.microsoft.com\/vcblog\/2015\/11\/30\/coroutines-in-visual-studio-2015-update-1\/.  Eric Mittelette. 2015. Coroutines in Visual Studio 2015--Update 1--Visual C++ Team Blog. https:\/\/blogs.msdn.microsoft.com\/vcblog\/2015\/11\/30\/coroutines-in-visual-studio-2015-update-1\/."},{"key":"e_1_2_2_66_1","doi-asserted-by":"publisher","DOI":"10.1007\/s00607-014-0416-7"},{"key":"e_1_2_2_67_1","doi-asserted-by":"crossref","volume-title":"Cellular Programming","author":"Niebert Peter","DOI":"10.1007\/978-3-319-13749-0_2"},{"key":"e_1_2_2_68_1","doi-asserted-by":"publisher","DOI":"10.1109\/CCNC.2017.7983156"},{"key":"e_1_2_2_69_1","doi-asserted-by":"publisher","DOI":"10.1145\/2568225.2568309"},{"key":"e_1_2_2_70_1","doi-asserted-by":"publisher","DOI":"10.1109\/SENSORCOMM.2009.26"},{"key":"e_1_2_2_71_1","doi-asserted-by":"publisher","DOI":"10.1109\/NOMS.2006.1687539"},{"key":"e_1_2_2_72_1","doi-asserted-by":"publisher","DOI":"10.1109\/EUC.2015.21"},{"key":"e_1_2_2_73_1","doi-asserted-by":"publisher","DOI":"10.5555\/2227115.2227123"},{"key":"e_1_2_2_74_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.infsof.2015.03.007"},{"key":"e_1_2_2_75_1","doi-asserted-by":"crossref","unstructured":"Till Riedel Nicolaie Fantana Adrian Genaid Dimitar Yordanov Hedda R. Schmidtke and Michael Beigl. 2010. Using web service gateways and code generation for sustainable IoT system development. In 2010 Internet of Things (IOT). 1--8.  Till Riedel Nicolaie Fantana Adrian Genaid Dimitar Yordanov Hedda R. Schmidtke and Michael Beigl. 2010. Using web service gateways and code generation for sustainable IoT system development. In 2010 Internet of Things (IOT). 1--8.","DOI":"10.1109\/IOT.2010.5678449"},{"key":"e_1_2_2_76_1","unstructured":"Torvald Riegel. 2015. P0073R0\u2014On unifying the coroutines and resumable functions proposals. (2015). http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2015\/p0073r0.pdf.  Torvald Riegel. 2015. P0073R0\u2014On unifying the coroutines and resumable functions proposals. (2015). http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2015\/p0073r0.pdf."},{"key":"e_1_2_2_77_1","unstructured":"Geoff Romer James Dennett and Chandler Carruth. 2018. P1063R0\u2014Core Coroutines Making coroutines simpler faster and more general. (2018). http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2018\/p1063r0.pdf.  Geoff Romer James Dennett and Chandler Carruth. 2018. P1063R0\u2014Core Coroutines Making coroutines simpler faster and more general. (2018). http:\/\/www.open-std.org\/jtc1\/sc22\/wg21\/docs\/papers\/2018\/p1063r0.pdf."},{"key":"e_1_2_2_78_1","doi-asserted-by":"publisher","DOI":"10.1109\/ICDCSW.2006.5"},{"key":"e_1_2_2_79_1","doi-asserted-by":"publisher","DOI":"10.5555\/2379703.2379738"},{"key":"e_1_2_2_80_1","doi-asserted-by":"publisher","DOI":"10.1016\/j.comnet.2014.11.008"},{"key":"e_1_2_2_81_1","unstructured":"Ian Skerrett. 2017. IoT Developer Trends 2017 Edition. https:\/\/ianskerrett.wordpress.com\/2017\/04\/19\/iot-developer-trends-2017-edition\/.  Ian Skerrett. 2017. IoT Developer Trends 2017 Edition. https:\/\/ianskerrett.wordpress.com\/2017\/04\/19\/iot-developer-trends-2017-edition\/."},{"key":"e_1_2_2_82_1","volume-title":"PICOBIT: A Compact Scheme System for Microcontrollers","author":"St-Amour Vincent","year":"2010"},{"key":"e_1_2_2_83_1","doi-asserted-by":"publisher","DOI":"10.1145\/323779.323736"},{"key":"e_1_2_2_84_1","doi-asserted-by":"publisher","DOI":"10.1109\/MASS.2010.5663821"},{"key":"e_1_2_2_85_1","first-page":"49","article-title":"A miniaturized wireless control platform for robotic capsular endoscopy using advanced pseudokernel approach. Sensors and Actuators, A","volume":"156","author":"Susilo E.","year":"2009","journal-title":"Physical"},{"key":"e_1_2_2_86_1","series-title":"Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) 6539 LNCS","volume-title":"The Fsharp asynchronous programming model","author":"Syme Don","year":"2011"},{"key":"e_1_2_2_87_1","unstructured":"Simon Tatham. 2000. Coroutines in C. https:\/\/www.chiark.greenend.org.uk\/ sgtatham\/coroutines.html.  Simon Tatham. 2000. Coroutines in C. https:\/\/www.chiark.greenend.org.uk\/ sgtatham\/coroutines.html."},{"key":"e_1_2_2_88_1","unstructured":"The Python Software Foundation. 2018. 9. Classes--Python 3.6.4 documentation. https:\/\/docs.python.org\/3\/tutorial\/classes.html#generators.  The Python Software Foundation. 2018. 9. Classes--Python 3.6.4 documentation. https:\/\/docs.python.org\/3\/tutorial\/classes.html#generators."},{"key":"e_1_2_2_89_1","volume-title":"8th International Python Conference (2000)","author":"Tismer C.","year":"2000"},{"key":"e_1_2_2_90_1","unstructured":"Christian Tismer. 2018. About Stackless. https:\/\/github.com\/stackless-dev\/stackless\/wiki.  Christian Tismer. 2018. About Stackless. https:\/\/github.com\/stackless-dev\/stackless\/wiki."},{"key":"e_1_2_2_91_1","volume-title":"Will Be in Use in 2017, Up 31 Percent From","author":"van der Meulen Rob","year":"2016"},{"key":"e_1_2_2_92_1","volume-title":"Eby","author":"van Rossum Guido","year":"2005"},{"key":"e_1_2_2_93_1","doi-asserted-by":"publisher","DOI":"10.1145\/1629335.1629366"},{"key":"e_1_2_2_94_1","first-page":"618","article-title":"Internet of Things: Privacy issues revisited. Computer Law 8 Security Review","volume":"31","author":"Weber Rolf H.","year":"2015","journal-title":"The International Journal of Technology Law and Practice"},{"key":"e_1_2_2_95_1","doi-asserted-by":"publisher","DOI":"10.1109\/WiCom.2008.960"}],"container-title":["ACM Transactions on Embedded Computing Systems"],"original-title":[],"language":"en","link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3319618","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3319618","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,17]],"date-time":"2025-06-17T23:54:34Z","timestamp":1750204474000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3319618"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2019,5,31]]},"references-count":92,"journal-issue":{"issue":"3","published-print":{"date-parts":[[2019,5,31]]}},"alternative-id":["10.1145\/3319618"],"URL":"https:\/\/doi.org\/10.1145\/3319618","relation":{},"ISSN":["1539-9087","1558-3465"],"issn-type":[{"value":"1539-9087","type":"print"},{"value":"1558-3465","type":"electronic"}],"subject":[],"published":{"date-parts":[[2019,5,31]]},"assertion":[{"value":"2018-10-01","order":0,"name":"received","label":"Received","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-03-01","order":1,"name":"accepted","label":"Accepted","group":{"name":"publication_history","label":"Publication History"}},{"value":"2019-06-05","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}