A static verification framework for message passing in Go using behavioural types
The Go programming language has been heavily adopted in industry as a language that efficiently combines systems programming with concurrency. Go's concurrency primitives, inspired by process calculi such as CCS and CSP, feature channel-based communication and lightweight threads, providing a d...
Gespeichert in:
| Veröffentlicht in: | 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE) S. 1137 - 1148 |
|---|---|
| Hauptverfasser: | , , , |
| Format: | Tagungsbericht |
| Sprache: | Englisch |
| Veröffentlicht: |
New York, NY, USA
ACM
27.05.2018
|
| Schriftenreihe: | ACM Conferences |
| Schlagworte: |
Software and its engineering
> Software notations and tools
> General programming languages
> Language types
> Concurrent programming languages
Software and its engineering
> Software organization and properties
> Software functional properties
> Formal methods
> Automated static analysis
Software and its engineering
> Software organization and properties
> Software functional properties
> Formal methods
> Model checking
|
| ISBN: | 9781450356381, 1450356389 |
| ISSN: | 1558-1225 |
| Online-Zugang: | Volltext |
| Tags: |
Tag hinzufügen
Keine Tags, Fügen Sie den ersten Tag hinzu!
|
| Abstract | The Go programming language has been heavily adopted in industry as a language that efficiently combines systems programming with concurrency. Go's concurrency primitives, inspired by process calculi such as CCS and CSP, feature channel-based communication and lightweight threads, providing a distinct means of structuring concurrent software. Despite its popularity, the Go programming ecosystem offers little to no support for guaranteeing the correctness of message-passing concurrent programs.
This work proposes a practical verification framework for message passing concurrency in Go by developing a robust static analysis that infers an abstract model of a program's communication behaviour in the form of a behavioural type, a powerful process calculi typing discipline. We make use of our analysis to deploy a model and termination checking based verification of the inferred behavioural type that is suitable for a range of safety and liveness properties of Go programs, providing several improvements over existing approaches. We evaluate our framework and its implementation on publicly available real-world Go code. |
|---|---|
| AbstractList | The Go programming language has been heavily adopted in industry as a language that efficiently combines systems programming with concurrency. Go's concurrency primitives, inspired by process calculi such as CCS and CSP, feature channel-based communication and lightweight threads, providing a distinct means of structuring concurrent software. Despite its popularity, the Go programming ecosystem offers little to no support for guaranteeing the correctness of message-passing concurrent programs. This work proposes a practical verification framework for message passing concurrency in Go by developing a robust static analysis that infers an abstract model of a program's communication behaviour in the form of a behavioural type, a powerful process calculi typing discipline. We make use of our analysis to deploy a model and termination checking based verification of the inferred behavioural type that is suitable for a range of safety and liveness properties of Go programs, providing several improvements over existing approaches. We evaluate our framework and its implementation on publicly available real-world Go code. The Go programming language has been heavily adopted in industry as a language that efficiently combines systems programming with concurrency. Go's concurrency primitives, inspired by process calculi such as CCS and CSP, feature channel-based communication and lightweight threads, providing a distinct means of structuring concurrent software. Despite its popularity, the Go programming ecosystem offers little to no support for guaranteeing the correctness of message-passing concurrent programs. This work proposes a practical verification framework for message passing concurrency in Go by developing a robust static analysis that infers an abstract model of a program's communication behaviour in the form of a behavioural type, a powerful process calculi typing discipline. We make use of our analysis to deploy a model and termination checking based verification of the inferred behavioural type that is suitable for a range of safety and liveness properties of Go programs, providing several improvements over existing approaches. We evaluate our framework and its implementation on publicly available real-world Go code. |
| Author | Yoshida, Nobuko Ng, Nicholas Lange, Julien Toninho, Bernardo |
| Author_xml | – sequence: 1 givenname: Julien surname: Lange fullname: Lange, Julien email: j.s.lange@kent.ac.uk organization: University of Kent – sequence: 2 givenname: Nicholas surname: Ng fullname: Ng, Nicholas email: nickng@imperial.ac.uk organization: Imperial College London – sequence: 3 givenname: Bernardo surname: Toninho fullname: Toninho, Bernardo email: b.toninho@imperial.ac.uk organization: Imperial College London – sequence: 4 givenname: Nobuko surname: Yoshida fullname: Yoshida, Nobuko email: n.yoshida@imperial.ac.uk organization: Imperial College London |
| BookMark | eNqNkDtPwzAUhc1LopTODCweWVL8jjNWFRSkSggJZstOr4tpE1d2WtR_T6CdmBiuviN9R3c4V-i8jS0gdEPJmFIh7znVhEo5PrA8QaOq1L0gXCqu6Ska9FYXlDF59sddolHOn4QQprTQVA3Q6wTnznahxjtIwYe6z7HFPtkGvmJaYR8TbiBnuwS8sTmHdolDi2cRb3-zgw-7C3Gb7Bp3-w3ka3Th7TrD6Mghen98eJs-FfOX2fN0Mi8s07orPFQLxyxZgFOuEtopr3QpwPUHdUV0XS-UYqKUQBgnwnFPS14JzoSvnQI-RLeHvwEAzCaFxqa90UJyWsne3h2srRvjYlxlQ4n52c8c9zuy7Kvjf1aNSwE8_wZAHW2S |
| CODEN | IEEPAD |
| ContentType | Conference Proceeding |
| Copyright | 2018 Owner/Author |
| Copyright_xml | – notice: 2018 Owner/Author |
| DBID | 6IE 6IH CBEJK RIE RIO |
| DOI | 10.1145/3180155.3180157 |
| DatabaseName | IEEE Electronic Library (IEL) Conference Proceedings IEEE Proceedings Order Plan (POP) 1998-present by volume IEEE Xplore All Conference Proceedings IEEE Electronic Library (IEL) IEEE Proceedings Order Plans (POP) 1998-present |
| DatabaseTitleList | |
| Database_xml | – sequence: 1 dbid: RIE name: IEEE url: https://ieeexplore.ieee.org/ sourceTypes: Publisher |
| DeliveryMethod | fulltext_linktorsrc |
| Discipline | Computer Science |
| EISBN | 9781450356381 1450356389 |
| EISSN | 1558-1225 |
| EndPage | 1148 |
| ExternalDocumentID | 8453195 |
| Genre | orig-research |
| GroupedDBID | 6IE 6IF 6IG 6IL 6IM 6IN AAJGR ABLEC ABQGA ACM ADPZR ALMA_UNASSIGNED_HOLDINGS APO BEFXN BFFAM BGNUA BKEBE BPEOZ CBEJK GUFHI IEGSK IJVOP LHSKQ OCL RIB RIC RIE RIL RIO -~X .4S .DC 123 23M 29O 5VS 6IH 6IK 8US AAWTH ADZIZ AFFNX ARCSS AVWKF CHZPO EDO FEDTE I-F I07 IPLJI M43 RNS XOL |
| ID | FETCH-LOGICAL-a288t-fe9db2a0deb6b948b6f6874eb74eec908ccd662475e02304b3f17394324fcb6e3 |
| IEDL.DBID | RIE |
| ISBN | 9781450356381 1450356389 |
| ISICitedReferencesCount | 49 |
| ISICitedReferencesURI | http://www.webofscience.com/api/gateway?GWVersion=2&SrcApp=Summon&SrcAuth=ProQuest&DestLinkType=CitingArticles&DestApp=WOS_CPL&KeyUT=000454843300141&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| IngestDate | Wed Aug 27 02:51:13 EDT 2025 Fri Sep 13 11:04:35 EDT 2024 |
| IsDoiOpenAccess | true |
| IsOpenAccess | true |
| IsPeerReviewed | false |
| IsScholarly | true |
| Language | English |
| License | This work is licensed under a Creative Commons Attribution International 4.0 License. |
| LinkModel | DirectLink |
| MeetingName | ICSE '18: 40th International Conference on Software Engineering |
| MergedId | FETCHMERGED-LOGICAL-a288t-fe9db2a0deb6b948b6f6874eb74eec908ccd662475e02304b3f17394324fcb6e3 |
| OpenAccessLink | https://dl.acm.org/doi/pdf/10.1145/3180155.3180157 |
| PageCount | 12 |
| ParticipantIDs | ieee_primary_8453195 acm_books_10_1145_3180155_3180157 acm_books_10_1145_3180155_3180157_brief |
| PublicationCentury | 2000 |
| PublicationDate | 20180527 2018-May |
| PublicationDateYYYYMMDD | 2018-05-27 2018-05-01 |
| PublicationDate_xml | – month: 05 year: 2018 text: 20180527 day: 27 |
| PublicationDecade | 2010 |
| PublicationPlace | New York, NY, USA |
| PublicationPlace_xml | – name: New York, NY, USA |
| PublicationSeriesTitle | ACM Conferences |
| PublicationTitle | 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE) |
| PublicationTitleAbbrev | ICSE |
| PublicationYear | 2018 |
| Publisher | ACM |
| Publisher_xml | – name: ACM |
| SSID | ssj0002684816 ssj0006499 |
| Score | 2.369095 |
| Snippet | The Go programming language has been heavily adopted in industry as a language that efficiently combines systems programming with concurrency. Go's concurrency... |
| SourceID | ieee acm |
| SourceType | Publisher |
| StartPage | 1137 |
| SubjectTerms | behavioural types Computer languages concurrency Concurrent computing go programming language Message systems model checking Programming Safety Software Software and its engineering -- Software notations and tools -- General programming languages -- Language types -- Concurrent programming languages Software and its engineering -- Software organization and properties -- Software functional properties -- Formal methods -- Automated static analysis Software and its engineering -- Software organization and properties -- Software functional properties -- Formal methods -- Model checking Software and its engineering -- Software organization and properties -- Software functional properties -- Formal methods -- Software verification static analysis System recovery Theory of computation -- Logic -- Type theory Theory of computation -- Logic -- Verification by model checking Theory of computation -- Models of computation -- Concurrency -- Process calculi |
| Title | A static verification framework for message passing in Go using behavioural types |
| URI | https://ieeexplore.ieee.org/document/8453195 |
| WOSCitedRecordID | wos000454843300141&url=https%3A%2F%2Fcvtisr.summon.serialssolutions.com%2F%23%21%2Fsearch%3Fho%3Df%26include.ft.matches%3Dt%26l%3Dnull%26q%3D |
| hasFullText | 1 |
| inHoldings | 1 |
| isFullTextHit | |
| isPrint | |
| link | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV1LS8NAEB7a4sFT1VasL1YQvJg-ks0-jiJWD1oqaOktZF_Sg6n04e93J9lWBEE8hA1h2SzDJPPN7Mw3AJdSKKeFNBEXNIko5tbkSayjNE-cjJnRtjwumDzy0UhMp3Jcg-ttLYy1tkw-s128Lc_yzVyvMVTWExQ1Jq1DnXNW1Wpt4ynIWiIQ6oS_MPPvDVQ-A5r2vOoiOuhWY2mL9PuPjiqlQRk2_7eVPWh_V-aR8dbm7EPNFgfQ3LRmIOFLbcHzDUEYOdNk4lXMhcAcGW5SsYjHquQJ25-8-QU9gParkVlB7uekTCIggTcRSTkI-qrLNrwO715uH6LQPSHKYyFWkbPSqDjvG6uYklQo5pjg1Cp_WS37QmvDWEx5atEPoSpxA55IZOhzWjGbHEKjmBf2CAgz3q8RXORC47xU0jjWxqhc9JX2GKYDF16aGboFy6yqdE6zIPEw8g5c_TknU4uZdR1oobyzj4puIwuiPv798QnsegwjqhzEU2isFmt7Bjv6czVbLs5LHfkCtyK2nA |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3dS8MwED_mFPRp6ibOzwiCL3br0jRNHkWcE7cxYY69leaj0gc72Yd_v0mbTQRBfCgpJaThuPZ-d7n7HcA1ZyKVjCsvYiTwiM2tSQIsvTAJUo6pkro4Lpj0o-GQTad8VIHbTS2M1rpIPtMte1uc5auZXNlQWZsRqzHhFmyHhGC_rNbaRFQsbwmzYMf9h6l5syPz6ZCwbZTX4oNWORbWSL7_6KlSmJRu7X-b2YfGd20eGm2szgFUdH4ItXVzBuS-1Tq83CELJDOJJkbJUheaQ911MhYyaBUNbAOUN7OggdBmNZTl6HGGijQC5JgTLS0Hst7qogGv3Yfxfc9z_RO8BDO29FLNlcCJr7SgghMmaEpZRLQwl5bcZ1IqSjGJQm09ESKCtBMF3HL0pVJQHRxBNZ_l-hgQVcazYRFLmLTzQk4wlkqJhPlCGhTThCsjzdg6Bou4rHUOYydxN0ZNuPlzTizmmU6bULfyjj9Kwo3Yifrk98eXsNsbD_px_2n4fAp7BtGwMiPxDKrL-Uqfw478XGaL-UWhL19oErnj |
| openUrl | ctx_ver=Z39.88-2004&ctx_enc=info%3Aofi%2Fenc%3AUTF-8&rfr_id=info%3Asid%2Fsummon.serialssolutions.com&rft_val_fmt=info%3Aofi%2Ffmt%3Akev%3Amtx%3Abook&rft.genre=proceeding&rft.title=2018+IEEE%2FACM+40th+International+Conference+on+Software+Engineering+%28ICSE%29&rft.atitle=A+Static+Verification+Framework+for+Message+Passing+in+Go+Using+Behavioural+Types&rft.au=Lange%2C+Julien&rft.au=Ng%2C+Nicholas&rft.au=Toninho%2C+Bernardo&rft.au=Yoshida%2C+Nobuko&rft.date=2018-05-01&rft.pub=ACM&rft.eissn=1558-1225&rft.spage=1137&rft.epage=1148&rft_id=info:doi/10.1145%2F3180155.3180157&rft.externalDocID=8453195 |
| thumbnail_l | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/lc.gif&client=summon&freeimage=true |
| thumbnail_m | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/mc.gif&client=summon&freeimage=true |
| thumbnail_s | http://covers-cdn.summon.serialssolutions.com/index.aspx?isbn=9781450356381/sc.gif&client=summon&freeimage=true |

