To simplify shared-memory concurrent programming, languages have started to offer core support for high-level communications primitives, in the form of message passing though channels, in addition to lower-level synchronisation primitives. Yet, a growing body of evidence suggests that channel-based programming abstractions also have their issues. The Discourje project aims to help programmers cope with channels and concurrency bugs in Clojure programs, based on dynamic analysis. The idea is that programmers write not only implementations of communication protocols in their Clojure programs, but also specifications. Discourje then offers a run-time verification library to ensure that channel actions in implementations are safe relative to sp...
Recent advances in the formal verification of message-passing programs are based on proving that pro...
Go is a production-level statically typed programming language whose design features explicit messag...
Reasoning about multithreaded object-oriented programs is difficult, due to the nonlocal nature of o...
To simplify shared-memory concurrent programming, languages have started to offer core support for h...
To simplify shared-memory concurrent programming, languages have started to offer core support for h...
To simplify shared-memory concurrent programming, in addition to low-level synchronisation primitive...
This paper presents Discourje: a runtime verification framework for communication protocols in Cloju...
This paper presents Discourje: a runtime verification framework for communication protocols in Cloju...
To simplify shared-memory concurrent programming, in addition to low-level synchronisation primitive...
In the past decades, many different programming models for managing concurrency in applications have...
Communication-based software is ubiquitous nowadays. From e-banking to e-shopping, online activities...
In the past decades, many different programming models for managing concurrency in applications have...
Concurrency control in modern programming languages is typically managed using mechanisms based on m...
Horus is a general-purpose layered message-passing system for distributed programming. A programmer ...
We present a verification system for Creol, an object-oriented modeling language for concurrent dist...
Recent advances in the formal verification of message-passing programs are based on proving that pro...
Go is a production-level statically typed programming language whose design features explicit messag...
Reasoning about multithreaded object-oriented programs is difficult, due to the nonlocal nature of o...
To simplify shared-memory concurrent programming, languages have started to offer core support for h...
To simplify shared-memory concurrent programming, languages have started to offer core support for h...
To simplify shared-memory concurrent programming, in addition to low-level synchronisation primitive...
This paper presents Discourje: a runtime verification framework for communication protocols in Cloju...
This paper presents Discourje: a runtime verification framework for communication protocols in Cloju...
To simplify shared-memory concurrent programming, in addition to low-level synchronisation primitive...
In the past decades, many different programming models for managing concurrency in applications have...
Communication-based software is ubiquitous nowadays. From e-banking to e-shopping, online activities...
In the past decades, many different programming models for managing concurrency in applications have...
Concurrency control in modern programming languages is typically managed using mechanisms based on m...
Horus is a general-purpose layered message-passing system for distributed programming. A programmer ...
We present a verification system for Creol, an object-oriented modeling language for concurrent dist...
Recent advances in the formal verification of message-passing programs are based on proving that pro...
Go is a production-level statically typed programming language whose design features explicit messag...
Reasoning about multithreaded object-oriented programs is difficult, due to the nonlocal nature of o...