kirancodes.me
To Proof Maintenance & Beyond!

Fencing off go: liveness and safety for channel-based programming

Julien Lange, Nicholas Ng, Bernardo Toninho, Nobuko Yoshida

Abstract

Go is a production-level statically typed programming language whose design features explicit message-passing primitives and lightweight threads, enabling (and encouraging) programmers to develop concurrent systems where components interact through communication more so than by lock-based shared memory concurrency. Go can only detect global deadlocks at runtime, but provides no compile-time protection against all too common communication mismatches or partial deadlocks.

Related papers