{"status":"ok","message-type":"work","message-version":"1.0.0","message":{"indexed":{"date-parts":[[2026,6,9]],"date-time":"2026-06-09T08:44:52Z","timestamp":1780994692856,"version":"3.54.1"},"publisher-location":"New York, NY, USA","reference-count":44,"publisher":"ACM","license":[{"start":{"date-parts":[[2018,5,27]],"date-time":"2018-05-27T00:00:00Z","timestamp":1527379200000},"content-version":"vor","delay-in-days":0,"URL":"https:\/\/creativecommons.org\/licenses\/by\/4.0\/"}],"funder":[{"name":"EPSRC","award":["EP\/K034413\/1, EP\/K011715\/1, EP\/L00058X\/1, EP\/N027833\/1, EP\/N028201\/1"],"award-info":[{"award-number":["EP\/K034413\/1, EP\/K011715\/1, EP\/L00058X\/1, EP\/N027833\/1, EP\/N028201\/1"]}]}],"content-domain":{"domain":["dl.acm.org"],"crossmark-restriction":true},"short-container-title":[],"published-print":{"date-parts":[[2018,5,27]]},"DOI":"10.1145\/3180155.3180157","type":"proceedings-article","created":{"date-parts":[[2018,6,12]],"date-time":"2018-06-12T12:16:01Z","timestamp":1528805761000},"page":"1137-1148","update-policy":"https:\/\/doi.org\/10.1145\/crossmark-policy","source":"Crossref","is-referenced-by-count":56,"title":["A static verification framework for message passing in Go using behavioural types"],"prefix":"10.1145","author":[{"given":"Julien","family":"Lange","sequence":"first","affiliation":[{"name":"University of Kent"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Nicholas","family":"Ng","sequence":"additional","affiliation":[{"name":"Imperial College London"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Bernardo","family":"Toninho","sequence":"additional","affiliation":[{"name":"Imperial College London"}],"role":[{"vocabulary":"crossref","role":"author"}]},{"given":"Nobuko","family":"Yoshida","sequence":"additional","affiliation":[{"name":"Imperial College London"}],"role":[{"vocabulary":"crossref","role":"author"}]}],"member":"320","published-online":{"date-parts":[[2018,5,27]]},"reference":[{"key":"e_1_3_2_1_1_1","doi-asserted-by":"publisher","DOI":"10.1561\/2500000031"},{"key":"e_1_3_2_1_2_1","doi-asserted-by":"publisher","DOI":"10.1145\/278283.278285"},{"key":"e_1_3_2_1_3_1","doi-asserted-by":"publisher","unstructured":"Cyrille Artho Masami Hagiya Richard Potter Yoshinori Tanabe Franz Weitl and Mitsuharu Yamamoto. 2013. Software model checking for distributed systems with selector-based non-blocking communication. In ASE. 169--179. 10.1109\/ASE.2013.6693077","DOI":"10.1109\/ASE.2013.6693077"},{"key":"e_1_3_2_1_4_1","unstructured":"The Go Authors. 2013. package ssa. http:\/\/golang.org\/x\/tools\/go\/ssa. (2013). http:\/\/golang.org\/x\/tools\/go\/ssa."},{"key":"e_1_3_2_1_5_1","volume-title":"go 1.5.1 linux\/amd64 deadlock detection failed. (9","author":"Fitzpatrick Brad","year":"2015","unstructured":"Brad Fitzpatrick. 2015. go 1.5.1 linux\/amd64 deadlock detection failed. (9 2015). https:\/\/github.com\/golang\/go\/issues\/12734."},{"key":"e_1_3_2_1_7_1","doi-asserted-by":"publisher","unstructured":"Sagar Chaki Sriram K. Rajamani and Jakob Rehof. 2002. Types as models: model checking message-passing programs. In POPL. 45--57. 10.1145\/503272.503278","DOI":"10.1145\/503272.503278"},{"key":"e_1_3_2_1_8_1","doi-asserted-by":"publisher","unstructured":"Witold Charatonik Andrew D. Gordon and Jean-Marc Talbot. 2002. Finite-Control Mobile Ambients. In ESOP. 295--313.","DOI":"10.5555\/645396.651962"},{"key":"e_1_3_2_1_9_1","volume-title":"https:\/\/coreos.com\/. (June","author":"OS","year":"2017","unstructured":"CoreOS 2017. CoreOS. https:\/\/coreos.com\/. (June 2017). https:\/\/coreos.com\/."},{"key":"e_1_3_2_1_10_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-36742-7_15"},{"key":"e_1_3_2_1_11_1","doi-asserted-by":"publisher","DOI":"10.1006\/inco.1996.0072"},{"key":"e_1_3_2_1_12_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-28869-2_10"},{"key":"e_1_3_2_1_13_1","volume-title":"Cooperating sequential process. Programming Languages","author":"Dijkstra E. W.","year":"1965","unstructured":"E. W. Dijkstra. 1965. Cooperating sequential process. Programming Languages (1965), 43--112."},{"key":"e_1_3_2_1_14_1","volume-title":"https:\/\/www.docker.com\/. (June","author":"Docker Docker","year":"2017","unstructured":"Docker 2017. Docker. https:\/\/www.docker.com\/. (June 2017)."},{"key":"e_1_3_2_1_15_1","volume-title":"Open Sourcing our Go Libraries, https:\/\/blogs.dropbox.com\/tech\/2014\/07\/open-sourcing-our-go-libraries\/. (July","year":"2014","unstructured":"2014. Open Sourcing our Go Libraries, https:\/\/blogs.dropbox.com\/tech\/2014\/07\/open-sourcing-our-go-libraries\/. (July 2014)."},{"key":"e_1_3_2_1_16_1","unstructured":"Stephan Falke Deepak Kapur and Carsten Sinz. 2011. Termination Analysis of C Programs Using Compiler Intermediate Languages. In RTA. 41--50."},{"key":"e_1_3_2_1_17_1","doi-asserted-by":"publisher","DOI":"10.1007\/978-3-642-27705-4_21"},{"key":"e_1_3_2_1_18_1","first-page":"187","article-title":"FDR3 --- A Modern Refinement Checker for CSP","volume":"8413","author":"Gibson-Robinson Thomas","year":"2014","unstructured":"Thomas Gibson-Robinson, Philip Armstrong, Alexandre Boulgakov, and A.W. Roscoe. 2014. FDR3 --- A Modern Refinement Checker for CSP. In Tools and Algorithms for the Construction and Analysis of Systems (Lecture Notes in Computer Science), Vol. 8413. 187--201.","journal-title":"Tools and Algorithms for the Construction and Analysis of Systems (Lecture Notes in Computer Science)"},{"key":"e_1_3_2_1_19_1","volume-title":"Modeling and Analysis of Communicating Systems","author":"Groote Jan Friso","unstructured":"Jan Friso Groote and Mohammad Reza Mousavi. 2014. Modeling and Analysis of Communicating Systems. MIT Press, https:\/\/mitpress.mit.edu\/books\/modeling-and-analysis-communicating-systems"},{"key":"e_1_3_2_1_20_1","unstructured":"Khronos OpenCL Working Group. 2015. The OpenCL Specification Version 2.0. https:\/\/www.khronos.org\/registry\/OpenCL\/specs\/opencl-2.0.pdf.(2015)."},{"key":"e_1_3_2_1_21_1","doi-asserted-by":"publisher","DOI":"10.1007\/s100090050043"},{"key":"e_1_3_2_1_22_1","doi-asserted-by":"publisher","DOI":"10.5555\/3921"},{"key":"e_1_3_2_1_23_1","doi-asserted-by":"publisher","DOI":"10.1145\/1328438.1328472"},{"key":"e_1_3_2_1_24_1","doi-asserted-by":"publisher","DOI":"10.1145\/2873052"},{"key":"e_1_3_2_1_25_1","doi-asserted-by":"publisher","DOI":"10.1016\/S0304-3975(03)00325-6"},{"key":"e_1_3_2_1_26_1","unstructured":"Ilya Biin. 2017. AstraNet. (August 2017). https:\/\/github.com\/zenhotels\/astranet."},{"key":"e_1_3_2_1_27_1","volume-title":"Kubernetes: Production-Grade Container Orchestration. https:\/\/kubernetes.io\/. (June","author":"S","year":"2017","unstructured":"K8S 2017. Kubernetes: Production-Grade Container Orchestration. https:\/\/kubernetes.io\/. (June 2017). https:\/\/kubernetes.io\/."},{"key":"e_1_3_2_1_28_1","doi-asserted-by":"publisher","DOI":"10.1016\/0304-3975(82)90125-6"},{"key":"e_1_3_2_1_29_1","doi-asserted-by":"publisher","unstructured":"Daniel Kroening Daniel Poetzl Peter Schrammel and Bj\u00f6rn Wachter. 2016. Sound static deadlock analysis for C\/Pthreads. In ASE. 379--390. 10.1145\/2970276.2970309","DOI":"10.1145\/2970276.2970309"},{"key":"e_1_3_2_1_30_1","doi-asserted-by":"publisher","DOI":"10.1145\/3009837.3009847"},{"key":"e_1_3_2_1_31_1","unstructured":"Julien Lange Nicholas Ng Bernardo Toninho and Nobuko Yoshida. 2017. Godel Checker. (2017). http:\/\/mrg.doc.ic.ac.uk\/tools\/godel-checker\/."},{"key":"e_1_3_2_1_32_1","doi-asserted-by":"publisher","unstructured":"Julien Lange Emilio Tuosto and Nobuko Yoshida. 2015. From Communicating Machines to Graphical Choreographies. In POPL. ACM 221--232. 10.1145\/2676726.2676964","DOI":"10.1145\/2676726.2676964"},{"key":"e_1_3_2_1_33_1","doi-asserted-by":"publisher","DOI":"10.5555\/332036"},{"key":"e_1_3_2_1_34_1","doi-asserted-by":"publisher","DOI":"10.5555\/539036"},{"key":"e_1_3_2_1_35_1","doi-asserted-by":"publisher","DOI":"10.5555\/534666"},{"key":"e_1_3_2_1_36_1","doi-asserted-by":"publisher","unstructured":"Nicholas Ng and Nobuko Yoshida. 2016. Static deadlock detection for concurrent go by global session graph synthesis. In CC. 174--184. 10.1145\/2892208.2892232","DOI":"10.1145\/2892208.2892232"},{"key":"e_1_3_2_1_37_1","doi-asserted-by":"publisher","DOI":"10.1145\/2603088.2603116"},{"key":"e_1_3_2_1_38_1","doi-asserted-by":"publisher","DOI":"10.1007\/s10515-013-0122-2"},{"key":"e_1_3_2_1_39_1","unstructured":"Sameer Ajmani. 2014. Go Concurrency Patterns: Pipelines and cancellation. (2014). https:\/\/blog.golang.org\/pipelines."},{"key":"e_1_3_2_1_40_1","doi-asserted-by":"crossref","unstructured":"Kai Stadtm\u00fcller Martin Sulzmann and Peter Thiemann. 2016. Static Trace-Based Deadlock Analysis for Synchronous Mini-Go. In APLAS. 116--136.","DOI":"10.1007\/978-3-319-47958-3_7"},{"key":"e_1_3_2_1_41_1","volume-title":"Building a new router for GOV.UK. https:\/\/gdstechnology.blog.gov.uk\/2013\/12\/05\/building-a-new-router-for-gov-uk\/. (June","author":"Stenning Nick","year":"2017","unstructured":"Nick Stenning. 2017. Building a new router for GOV.UK. https:\/\/gdstechnology.blog.gov.uk\/2013\/12\/05\/building-a-new-router-for-gov-uk\/. (June 2017). https:\/\/gdstechnology.blog.gov.uk\/2013\/12\/05\/building-a-new-router-for-gov-uk\/."},{"key":"e_1_3_2_1_42_1","volume-title":"Collection of Golang concurrency patterns. (June","author":"Supercomputing Stillwater","year":"2017","unstructured":"Stillwater Supercomputing. 2017. Collection of Golang concurrency patterns. (June 2017). https:\/\/github.com\/stillwater-sc\/concurrency."},{"key":"e_1_3_2_1_43_1","unstructured":"The Go Authors. 2017. Effective Go. (June 2017). https:\/\/golang.org\/doc\/effective_go.html."},{"key":"e_1_3_2_1_44_1","doi-asserted-by":"publisher","DOI":"10.5555\/786768.786967"},{"key":"e_1_3_2_1_45_1","unstructured":"Kai Wei. 2016. How we built Uber engineering's highest query per second service using Go. https:\/\/eng.uber.com\/go-geofence\/. (2016)."}],"event":{"name":"ICSE '18: 40th International Conference on Software Engineering","location":"Gothenburg Sweden","acronym":"ICSE '18","sponsor":["SIGSOFT ACM Special Interest Group on Software Engineering","IEEE-CS Computer Society"]},"container-title":["Proceedings of the 40th International Conference on Software Engineering"],"original-title":[],"link":[{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3180155.3180157","content-type":"unspecified","content-version":"vor","intended-application":"text-mining"},{"URL":"https:\/\/dl.acm.org\/doi\/pdf\/10.1145\/3180155.3180157","content-type":"unspecified","content-version":"vor","intended-application":"similarity-checking"}],"deposited":{"date-parts":[[2025,6,18]],"date-time":"2025-06-18T01:08:18Z","timestamp":1750208898000},"score":1,"resource":{"primary":{"URL":"https:\/\/dl.acm.org\/doi\/10.1145\/3180155.3180157"}},"subtitle":[],"short-title":[],"issued":{"date-parts":[[2018,5,27]]},"references-count":44,"alternative-id":["10.1145\/3180155.3180157","10.1145\/3180155"],"URL":"https:\/\/doi.org\/10.1145\/3180155.3180157","relation":{},"subject":[],"published":{"date-parts":[[2018,5,27]]},"assertion":[{"value":"2018-05-27","order":2,"name":"published","label":"Published","group":{"name":"publication_history","label":"Publication History"}}]}}