Przejdź do treści

Meetup #67 - Communicating Sequential Processes

Zdjęcie użytkownika Adam Pohorecki
Hosted By
Adam P. i Paweł P.
Meetup #67 -  Communicating Sequential Processes

Szczegóły

Over the last year we discussed Actors (https://www.meetup.com/sc-krk/events/114314972/), Agents (https://www.meetup.com/sc-krk/events/116568962/) and Functional Reactive Programming (https://www.meetup.com/sc-krk/events/145931322/). This time we will expand our knowledge of parallel programming techniques by discussing Communicating Sequential Processes - the model that's behind (among others) Go's Goroutines and Clojure's core.async.

Article to read: Communicating Sequential Processes by C. A. R. Hoare (http://www.cs.cmu.edu/~crary/819-f09/Hoare78.pdf)

Abstract from the paper:

This paper suggests that input and output are basic primitives of programming and that parallel composition of communicating sequential processes is a fundamental program structuring method. When combined with a development of Dijkstra's guarded command, these concepts are surprisingly versatile. Their use is illustrated by sample solutions of a variety of familiar programming exercises.

As always, we will discuss the article over free beer, sponsored by Lunar Logic.

Additional reading (for the interested):

Core.async - Communicating Sequential Processes using Channels, in Clojure (http://www.infoq.com/presentations/core-async-clojure)

The examples from Hoare's paper implemented in Go. (http://godoc.org/github.com/thomas11/csp)

Effective Go - Goroutines (http://golang.org/doc/effective_go.html#sharing)

Communicating Sequential Processes (2001 book by C. A. R. Hoare) (http://www.usingcsp.com/cspbook.pdf)

Photo of SCKRK - Software Craftsmanship Kraków group
SCKRK - Software Craftsmanship Kraków
Zobacz więcej wydarzeń
Lunar Logic Polska
al. Krasinskiego 17/3 · Kraków