Fencing off Go: Liveness and Safety for Channel-based Programming
- đ¤ Speaker: Nicholas Ng and Bernardo Toninho, Imperial College đ Website
- đ Date & Time: Friday 11 November 2016, 14:00 - 15:00
- đ Venue: FW26
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.
This talk presents a static verification framework for liveness and safety of Go programs, aimed at detecting communication errors and deadlocks in a general class of realistic concurrent programs such as those with unbounded thread creation, dynamic channel creation and recursion. Our work infers from a Go program an abstract representation of its communication patterns as a behavioural type. We define a symbolic execution semantics for types, which allows us to check for the absence of communication errors and liveness in a finite state space.
By checking a syntactic restriction on channel usage in types, dubbed fencing, we ensure that programs are made up of finitely many different communication patterns that may be repeated infinitely many times, ensuring decidability and soundness of our analyses.
Our analysis and inference have been implemented in a publicly available tool-chain. At the end of the talk, we do a short demo of our tool.
Series This talk is part of the Logic and Semantics Seminar (Computer Laboratory) series.
Included in Lists
- All Talks (aka the CURE list)
- bld31
- Cambridge talks
- Computing and Mathematics
- Department of Computer Science and Technology talks and seminars
- FW26
- Interested Talks
- Logic and Semantics Seminar (Computer Laboratory)
- Martin's interesting talks
- School of Technology
- tcw57âs list
- Trust & Technology Initiative - interesting events
- yk373's list
- yk449
Note: Ex-directory lists are not shown.
![[Talks.cam]](/static/images/talkslogosmall.gif)



Friday 11 November 2016, 14:00-15:00