Concurrent and distributed systems