===== Concurrency ===== ~~NOTOC~~ ==== Communicating Sequential Processes (CSP) Links ==== * [[http://www.wotug.org/|WoTUG]] - The place for Communicating Processes * The classic text: [[http://www.usingcsp.com/|Communicating Sequential Processes (Hoare)]] * The modern text: [[http://web.comlab.ox.ac.uk/oucl/work/bill.roscoe/publications/68b.pdf|Theory and Practice of Concurrency (Roscoe)]] * Unifying Theories of Programming text, by Hoare and He: [[http://www.unifyingtheories.org/|UTP]] * [[http://www.cs.kent.ac.uk/projects/ofa/jcsp/|JCSP]] - CSP for Java * [[http://www.cs.kent.ac.uk/projects/ofa/c++csp/|C++CSP2]] – CSP for C++ * [[http://www.cs.kent.ac.uk/projects/ofa/chp/|CHP]] – Communicating Haskell Processes * [[http://www.cs.kent.ac.uk/projects/ofa/kroc/|occam-pi]] - blending the best of CSP and the pi-calculus * [[http://golang.org/|Go]] – a CSP-inspired programming language * [[https://github.com/atrn/par|PAR]] package for PARallel composition in Go * [[https://youtu.be/sX8r6zATHGU|Steve Francia - Go: building on the shoulders of giants and stepping on a few toes]] ==== Other parallel and distributed computing links ==== * [[http://en.wikipedia.org/wiki/Rinda_(Ruby_programming_language)|Rinda]] (Linda library for Ruby Programming Language) * [[http://upc.lbl.gov/|Berkeley UPC]] - Unified Parallel C\\ * [[http://www.nvidia.com/object/cuda_home.html|CUDA]] - NVidia's general purpose parallel computing architecture * [[https://syndicate-lang.org/|Syndicate]] - an actors framework for Racket * [[https://docs.racket-lang.org/syndicate/index.html|Racket Doc]] ==== Textbooks ==== * [[https://learning.oreilly.com/library/view/principles-of-concurrent/9780321312839/|Principles of Concurrent and Distributed Programming, 2nd edition]], by Mordechai Ben Ari * [[https://learning.oreilly.com/library/view/the-art-of/9780123973375/|The Art of Multiprocessor Programming]], by Maurice Herlihy and Nir Shavit