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...
Uloženo v:
| Vydáno v: | 2018 IEEE/ACM 40th International Conference on Software Engineering (ICSE) s. 1137 - 1148 |
|---|---|
| Hlavní autoři: | , , , |
| Médium: | Konferenční příspěvek |
| Jazyk: | angličtina |
| Vydáno: |
New York, NY, USA
ACM
27.05.2018
|
| Edice: | ACM Conferences |
| Témata: |
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 |
| On-line přístup: | Získat plný text |
| Tagy: |
Přidat tag
Žádné tagy, Buďte první, kdo vytvoří štítek k tomuto záznamu!
|
| 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 Electronic Library (IEL) 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/eLvHCXMwlV1LS8NAEB7a4sFT1VasL1YQvJg2TTb7OIpYvVgqqPQWsruzkoOt9OHvdzfZVgRBPIQNISxhmGS-mcz3DcClSXlis5RFUloVUZdjRIWJVRRrF1yMtsi4qoZN8PFYTKdy0oDrLRcGEavmM-z70-pfvpnrtS-VDQT1HpM1ock5q7la23qKVy0RHuqErzBzUD5I-QxpNnCu69FBv16rWKTff0xUqQLKqP2_R9mD7jczj0y2MWcfGjg7gPZmNAMJb2oHnm6Ih5GlJq_OxWwozJHRphWLOKxKHv34kze3oQPQbjdSzsj9nFRNBCToJnpRDuJz1WUXXkZ3z7cPUZieEBWJEKvIojQqKWKDiilJhWKWCU5RuQO1jIXWhrGE8gx9HkJVaoc8lV6hz2rFMD2E1mw-wyMgibBe2Et7livNBIqMFYjCSquHRseiBxfOmrlPC5Z5zXTO8mDxsPIeXP15T64WJdoedLy9849abiMPpj7-_fIJ7DoMI-oexFNorRZrPIMd_bkql4vzyke-AFtwtu0 |
| linkProvider | IEEE |
| linkToHtml | http://cvtisr.summon.serialssolutions.com/2.0.0/link/0/eLvHCXMwlV3fS8MwED7mFPRp6ibOnxEEX-zs2iRNH0WcE7cxYcreypJepA92sh_-_SZtNhEE8aGklBLKce19d73vO4DLNIwCzULuxbGWHjU5hjdJfen5ygSXVGnkkSyGTUSDgRiP42EFrtdcGEQsms-wZU-Lf_npVC1tqexGUOsxbAM2GaWBX7K11hUVq1siLNhx32FuwLwT82lTdmOc1-KDVrkW0Ui9_5ipUoSUTu1_D7MLjW9uHhmuo84eVDDfh9pqOANx72odnm-JBZKZIq_GybQrzZHOqhmLGLRK-nYAypvZ0EBosxvJcvIwJUUbAXHKiVaWg9hsdd6Al8796K7rufkJ3iQQYuFpjFMZTPwUJZcxFZJrLiKK0hyoYl8olXIe0IihzUSoDHU7CmOr0aeV5BgeQDWf5ngIJBDaSnspy3OlTKBgfIIodKxVO1W-aMKFsWZiE4N5UnKdWeIs7taoCVd_3pPIWYa6CXVr7-SjFNxInKmPfr98DtvdUb-X9B4HT8ewYxCNKDsST6C6mC3xFLbU5yKbz84Kf_kCELC6NA |
| 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=Proceedings+of+the+40th+International+Conference+on+Software+Engineering&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.series=ACM+Conferences&rft.date=2018-05-27&rft.pub=ACM&rft.isbn=9781450356381&rft.spage=1137&rft.epage=1148&rft_id=info:doi/10.1145%2F3180155.3180157 |
| 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 |

