Detecting Blocking Errors in Go Programs using Localized Abstract Interpretation
Oskar Haarklou Veileborg, Georgian-Vlad Saioc, Anders Møller
Abstract
Channel-based concurrency is a widely used alternative to shared-memory concurrency but is difficult to use correctly. Common programming errors may result in blocked threads that wait indefinitely. Recent work exposes this as a considerable problem in Go programs and shows that many such errors can be detected automatically using SMT encoding and dynamic analysis techniques.
Topics & Concepts
Computer scienceConcurrencyBlocking (statistics)Abstract interpretationProgramming languageEncoding (memory)Interpretation (philosophy)Concurrency controlTheoretical computer scienceParallel computingArtificial intelligenceComputer networkDatabase transactionFormal Methods in VerificationParallel Computing and Optimization TechniquesLogic, programming, and type systems