English
Related papers

Related papers: Fencing off Go: Liveness and Safety for Channel-ba…

200 papers

Go is a popular concurrent programming language thanks to its ability to efficiently combine concurrency and systems programming. In Go programs, a number of concurrency bugs can be caused by a mixture of data races and communication…

Programming Languages · Computer Science 2021-11-22 Julia Gabet , Nobuko Yoshida

We consider the problem of static deadlock detection for programs in the Go programming language which make use of synchronous channel communications. In our analysis, regular expressions extended with a fork operator capture the…

Programming Languages · Computer Science 2016-09-05 Kai Stadtmüller , Martin Sulzmann , Peter Thiemann

Go is an increasingly-popular systems programming language targeting, especially, concurrent and distributed systems. Go differentiates itself from other imperative languages by offering structural subtyping and lightweight concurrency…

Programming Languages · Computer Science 2021-05-31 Felix A. Wolf , Linard Arquint , Martin Clochard , Wytse Oortwijn , João C. Pereira , Peter Müller

A key computational question underpinning the automated testing and verification of concurrent programs is the consistency question - given a partial execution history, can it be completed in a consistent manner? Due to its importance,…

Programming Languages · Computer Science 2025-12-02 Zheng Shi , Lasse Møldrup , Umang Mathur , Andreas Pavlogiannis

Coroutines, as an abstract programming construct, are a generalization of functions that can suspend execution part- way for later resumption. Coroutine Types are behavioral types to model interactions of coroutines with a single receiving…

Programming Languages · Computer Science 2026-02-24 Qiqi Jason Gu , Lixue Liu , Wei Ke

This paper describes a static verification framework for the message-passing fragment of the Go programming language. Our framework extracts models that over-approximate the message-passing behaviour of a program. These models, or…

Programming Languages · Computer Science 2020-04-06 Nicolas Dilley , Julien Lange

Go is a modern programming language gaining popularity in enterprise microservice systems. Concurrency is a first-class citizen in Go with lightweight ``goroutines'' as the building blocks of concurrent execution. Go advocates…

Software Engineering · Computer Science 2023-12-20 Georgian-Vlad Saioc , Dmitriy Shirchenko , Milind Chabbi

The Go programming language aims to provide memory and thread safety through measures such as automated memory management with garbage collection and a strict type system. However, it also offers a way of circumventing this safety net…

Cryptography and Security · Computer Science 2020-10-23 Johannes Lauinger , Lars Baumgärtner , Anna-Katharina Wickert , Mira Mezini

Understanding the run-time behavior of concurrent programs is a challenging task. A popular approach is to establish a happens- before relation via vector clocks. Thus, we can identify bugs and per- formance bottlenecks, for example, by…

Programming Languages · Computer Science 2018-07-23 Martin Sulzmann , Kai Stadtmueller

The concurrent programming literature is rich with tools and techniques for data race detection. Less, however, has been known about real-world, industry-scale deployment, experience, and insights about data races. Golang (Go for short) is…

Distributed, Parallel, and Cluster Computing · Computer Science 2022-04-07 Milind Chabbi , Murali Krishna Ramanathan

Programmers of distributed systems need to reason about concurrency to avoid races. However, reasoning about concurrency is difficult, and unexpected races show up as bugs. Data race detection in shared memory systems is well-studied…

Software Engineering · Computer Science 2025-07-28 Zhengqun Koo

We describe Concurrent C0, a type-safe C-like language with contracts and session-typed communication over channels. Concurrent C0 supports an operation called forwarding which allows channels to be combined in a well-defined way. The…

Programming Languages · Computer Science 2017-01-19 Max Willsey , Rokhini Prabhu , Frank Pfenning

The Go programming language has become increasingly popular among malware developers due to its ability to produce statically linked, cross-platform executables that challenge traditional analysis techniques. These binaries embed a…

Cryptography and Security · Computer Science 2026-05-15 Hala Ali , Andrew Case , Irfan Ahmed

A decade after its first release, the Go programming language has become a major programming language in the development landscape. While praised for its clean syntax and C-like performance, Go also contains a strong static type-system that…

Software Engineering · Computer Science 2021-10-12 Diego Elias Costa , Suhaib Mujahid , Rabe Abdalkareem , Emad Shihab

We consider the task of analyzing message-passing programs by observing their run-time behavior. We introduce a purely library-based instrumentation method to trace communication events during execution. A model of the dependencies among…

Programming Languages · Computer Science 2018-01-31 Martin Sulzmann , Kai Stadtmüller

The Go programming language has gained significant traction for developing software, especially in various infrastructure systems. Nonetheless, concurrency bugs have become a prevalent issue within Go, presenting a unique challenge due to…

Software Engineering · Computer Science 2024-12-12 Foivos Tsimpourlas , Chao Peng , Carlos Rosuero , Ping Yang , Ajitha Rajan

This paper describes a successful attempt to combine two relatively new technologies: Stream Control Transmission Protocol (SCTP) and the programming language Go, achieved by extending the existing Go network library with SCTP. SCTP is a…

Networking and Internet Architecture · Computer Science 2017-11-21 Olivier Van Acker

This paper presents a general framework and methods for complete programming and checking of distributed algorithms at a high-level, as in pseudocode languages, but precisely specified and directly executable, as in formal specification…

Software Engineering · Computer Science 2020-12-25 Yanhong A. Liu , Scott D. Stoller

We address the problem of statically checking control state reachability (as in possibility of assertion violations, race conditions or runtime errors) and plain reachability (as in deadlock-freedom) of phaser programs. Phasers are a modern…

Programming Languages · Computer Science 2017-08-10 Zeinab Ganjei , Ahmed Rezine , Petru Eles , Zebo Peng

Go is a popular statically-typed industrial programming language. To aid the type safe reuse of code, the recent Go release (Go 1.18) published on 15th March 2022 includes bounded parametric polymorphism via generic types. Go 1.18…

Programming Languages · Computer Science 2022-10-11 Stephen Ellis , Shuofei Zhu , Nobuko Yoshida , Linhai Song
‹ Prev 1 2 3 10 Next ›