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

@article{Lange2017FencingOG,
  title={Fencing off go: liveness and safety for channel-based programming},
  author={J. Lange and Nicholas Ng and Bernardo Toninho and N. Yoshida},
  journal={Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages},
  year={2017}
}
  • J. Lange, Nicholas Ng, +1 author N. Yoshida
  • Published 2017
  • Computer Science
  • Proceedings of the 44th ACM SIGPLAN Symposium on Principles of Programming Languages
  • 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. This work develops a… CONTINUE READING
    37 Citations
    Liveness and Safety for Channel-Based Programming
    • PDF
    A Static Verification Framework for Message Passing in Go Using Behavioural Types
    • 31
    • PDF
    GoPi: Compiling Linear and Static Channels in Go
    • 1
    • PDF
    Verifying message-passing programs with dependent behavioural types
    • 10
    • PDF
    Safe Sessions of Channel Actions in Clojure: A Tour of the Discourje Project
    • 1
    • PDF
    Deadlock-Free Typestate-Oriented Programming
    • 11
    • Highly Influenced
    • PDF
    Bounded verification of message-passing concurrency in Go using Promela and Spin
    • PDF
    Deadlock-Free Typestate-Oriented Programming Luca Padovani
    Operational semantics of a weak memory model with channel synchronization
    • 4
    • PDF

    References

    SHOWING 1-4 OF 4 REFERENCES
    An Interaction-based Language and its Typing System
    • 349
    • Highly Influential
    A generic type system for the Pi-calculus
    • 134
    • Highly Influential
    A Calculus of Communicating Systems, volume 92 of Lecture Notes in Computer Science
    • 1980
    go 1.5.1 linux/amd64 deadlock detection failed, 2015. https://github.com/golang/go/issues
    • go 1.5.1 linux/amd64 deadlock detection failed, 2015. https://github.com/golang/go/issues