{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2025,11,19]],"date-time":"2025-11-19T06:54:08Z","timestamp":1763535248180,"version":"3.41.0"},"publisher-location":"New York, NY, USA","reference-count":24,"publisher":"ACM","license":[{"start":{"date-parts":[[2013,8,18]],"date-time":"2013-08-18T00:00:00Z","timestamp":1376784000000},"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":[[2013,8,18]]},"DOI":"10.1145\/2491411.2491461","type":"proceedings-article","created":{"date-parts":[[2013,8,20]],"date-time":"2013-08-20T14:07:21Z","timestamp":1377007641000},"page":"543-553","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":42,"title":["Crossing the gap from imperative to functional programming through refactoring"],"prefix":"10.1145","author":[{"given":"Alex","family":"Gyori","sequence":"first","affiliation":[{"name":"University of Illinois, USA"}]},{"given":"Lyle","family":"Franklin","sequence":"additional","affiliation":[{"name":"Ball State University, USA"}]},{"given":"Danny","family":"Dig","sequence":"additional","affiliation":[{"name":"Oregon State University, USA"}]},{"given":"Jan","family":"Lahoda","sequence":"additional","affiliation":[{"name":"Oracle, Czech Republic"}]}],"member":"320","published-online":{"date-parts":[[2013,8,18]]},"reference":[{"key":"e_1_3_2_1_1_1","unstructured":"FluentIterable. http:\/\/docs.guava-libraries. googlecode.com\/git\/javadoc\/com\/google\/common\/ collect\/FluentIterable.html.  FluentIterable. http:\/\/docs.guava-libraries. googlecode.com\/git\/javadoc\/com\/google\/common\/ collect\/FluentIterable.html."},{"key":"e_1_3_2_1_2_1","unstructured":"Intel Thread Building Blocks For Open Source. http:\/\/threadingbuildingblocks.org\/.  Intel Thread Building Blocks For Open Source. http:\/\/threadingbuildingblocks.org\/."},{"key":"e_1_3_2_1_3_1","unstructured":"Parallel LINQ. http:\/\/msdn.microsoft.com\/en-us\/ library\/dd460688.aspx.  Parallel LINQ. http:\/\/msdn.microsoft.com\/en-us\/ library\/dd460688.aspx."},{"key":"e_1_3_2_1_4_1","unstructured":"Quick-assist to convert for to enhanced-for. http:\/\/archive.eclipse.org\/eclipse\/downloads\/ drops\/R-3.1-200506271435\/eclipse-news-all. html#part2.  Quick-assist to convert for to enhanced-for. http:\/\/archive.eclipse.org\/eclipse\/downloads\/ drops\/R-3.1-200506271435\/eclipse-news-all. html#part2."},{"key":"e_1_3_2_1_5_1","unstructured":"SLOCCount. http:\/\/www.dwheeler.com\/sloccount\/.  SLOCCount. http:\/\/www.dwheeler.com\/sloccount\/."},{"key":"e_1_3_2_1_6_1","unstructured":"State of the lambda. http:\/\/cr.openjdk.java.net\/ ~briangoetz\/lambda\/lambda-state-4.html.  State of the lambda. http:\/\/cr.openjdk.java.net\/ ~briangoetz\/lambda\/lambda-state-4.html."},{"key":"e_1_3_2_1_7_1","unstructured":"State of the lambda: Collections edition. http:\/\/cr.openjdk.java.net\/~briangoetz\/lambda\/ collections-overview.html.  State of the lambda: Collections edition. http:\/\/cr.openjdk.java.net\/~briangoetz\/lambda\/ collections-overview.html."},{"key":"e_1_3_2_1_8_1","unstructured":"Task Parallel Library. http:\/\/msdn.microsoft.com\/ en-us\/library\/dd537609.aspx.  Task Parallel Library. http:\/\/msdn.microsoft.com\/ en-us\/library\/dd537609.aspx."},{"key":"e_1_3_2_1_9_1","unstructured":"The Scala Programming Language. http:\/\/www.scala-lang.org\/.  The Scala Programming Language. http:\/\/www.scala-lang.org\/."},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1145\/1640089.1640097"},{"key":"e_1_3_2_1_11_1","volume-title":"Java concurrency in practice","author":"Brian Goetz T. P.","year":"2006","unstructured":"T. P. Brian Goetz . Java concurrency in practice . Addison-Wesley , 2006 . T. P. Brian Goetz. Java concurrency in practice. Addison-Wesley, 2006."},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1145\/1900160.1900170"},{"key":"e_1_3_2_1_13_1","volume-title":"Design Patterns: Elements of Reusable Object-Oriented Software","author":"Gamma E.","year":"2004","unstructured":"E. Gamma , R. Helm , R. Johnson , and J. Vlissides . Design Patterns: Elements of Reusable Object-Oriented Software . Addison-Wesley , 2004 . E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design Patterns: Elements of Reusable Object-Oriented Software. Addison-Wesley, 2004."},{"key":"e_1_3_2_1_14_1","volume-title":"Proceedings of Scala Days","author":"Hundt R.","year":"2011","unstructured":"R. Hundt . Loop Recognition in C++\/Java\/Go\/Scala . In Proceedings of Scala Days , 2011 . R. Hundt. Loop Recognition in C++\/Java\/Go\/Scala. In Proceedings of Scala Days, 2011."},{"key":"e_1_3_2_1_15_1","doi-asserted-by":"publisher","DOI":"10.1145\/1985793.1986030"},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1109\/SCAM.2006.8"},{"key":"e_1_3_2_1_18_1","doi-asserted-by":"publisher","DOI":"10.5555\/1987237.1987239"},{"key":"e_1_3_2_1_19_1","doi-asserted-by":"publisher","DOI":"10.1145\/2393596.2393660"},{"key":"e_1_3_2_1_20_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-31057-7_2"},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.5555\/2337223.2337238"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/2033408.2033425"},{"key":"e_1_3_2_1_23_1","first-page":"173","volume-title":"FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction. In 25th International Workshop on Languages and Compilers for Parallel Computing","author":"Prokopec A.","year":"2012","unstructured":"A. Prokopec , H. Miller , T. Schlatter , P. Haller , and M. Odersky . FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction. In 25th International Workshop on Languages and Compilers for Parallel Computing , pages 158\u2013 173 , 2012 . A. Prokopec, H. Miller, T. Schlatter, P. Haller, and M. Odersky. FlowPools: A Lock-Free Deterministic Concurrent Dataflow Abstraction. In 25th International Workshop on Languages and Compilers for Parallel Computing, pages 158\u2013173, 2012."},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2483760.2483765"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1007\/11546382_9"}],"event":{"name":"ESEC\/FSE'13: Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering"],"location":"Saint Petersburg Russia","acronym":"ESEC\/FSE'13"},"container-title":["Proceedings of the 2013 9th Joint Meeting on Foundations of Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2491411.2491461","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/2491411.2491461","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T07:28:41Z","timestamp":1750231721000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/2491411.2491461"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2013,8,18]]},"references-count":24,"alternative-id":["10.1145\/2491411.2491461","10.1145\/2491411"],"URL":"https:\/\/doi.org\/10.1145\/2491411.2491461","relation":{},"subject":[],"published":{"date-parts":[[2013,8,18]]},"assertion":[{"value":"2013-08-18","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}