[Swift-devel] Functional building blocks as concurrency patterns

Ben Clifford benc at hawaga.org.uk
Sat Nov 29 16:45:32 CST 2008


This just appeared on lambda-the-ultimate:

http://lambda-the-ultimate.org/node/3108

> While teaching INGI1131, my concurrent programming course, I have become 
> even more impressed by a concurrent paradigm, namely functional 
> programming extended with threads and ports, which I call multi-agent 
> dataflow programming.

Some ofthe concepts overlap or are closely related to SwiftScript and so 
some of the discussion on that post is interesting to skim.

Some differences are that:

* we don't have infinite/unbounded streams of data because of the way that 
our mappers work at the moment (though it conceptually fits in with 
SwiftScript); and 

* we don't have ports (or some other way of introducing non-determininism 
in the language itself) - we do have something similar at the execution 
layer, though, in the form of job replication, where we allow two job 
submissions to race to start execution and only keep the one that starts 
executing (some day it might be desirable to extend this to the one that 
finishes first or some other more complex expression, but I don't see need 
at the moment)

-- 




More information about the Swift-devel mailing list