Kamaelia - Concurrency made useful, fun In Kamaelia you build systems from simple components that talk to each other. This speeds development, massively aids maintenance and also means you build naturally concurrent software. It's intended to be accessible by any developer, including novices. What sort of systems? Network servers, clients, desktop applications, pygame based games, transcode systems and pipelines, digital TV systems, spam eradicators, teaching tools, and a fair amount more :)
The Little Book of Semaphores is a free (in both senses of the word) textbook that introduces the principles of synchronization for concurrent programming. In most computer science curricula, synchronization is a module in an Operating Systems class. OS textbooks present a standard set of problems with a standard set of solutions, but most students don't get a good understanding of the material or the ability to solve similar problems. The approach of this book is to identify patterns that are useful for a variety of synchronization problems and then show how they can be assembled into solutions. After each problem, the book offers a hint before showing a solution, giving students a better chance of discovering solutions on their own. The book covers the classical problems, including "Readers-writers," "Producer-consumer", and "Dining Philosophers." In addition, it collects a number of not-so-classical problems
Communication and Concurrency Lectures take place Monday and Thursday 14.00-14.50 in Appleton Tower, room M1, and are given by Colin Stirling. The syllabus of this module can be viewed in HTML through the Course Guide Background Reading: Milner's book "Communication and Concurrency, Prentice-Hall 1989" is important. Here is some background reading on ordinary, list, and tree (=structural) induction: ps pdf The Wikipedia article on Modal Logic makes interesting background reading. Note that there is a pointer to, but no article for, Hennessy-Milner logic: maybe you would like to write it?
with Philippa Gardner, Term 1, 2007/2008. Recommended Textbooks R. Milner. Communicating and Mobile Systems: the pi-Calculus. Cambridge University Press, various editions. (Introductory) D. Sangiorgi and D. Walker. The pi-Calculus: a Theory of Mobile Processes. Cambridge University Press, 2001. Online References and Tutorials A Calculus for Mobile Processes (Parts I/II) (by Robin Milner, Joachim Parrow, and David Walker). Also available from this site: [ Part I] [ Part II] The Polyadic Pi-Calculus: A Tutorial (by Robin Milner). Also available from this site: [(Postscript)] An Introduction to the Pi-calculus (by Joachim Parrow) A Brief Introduction to Applied Pi (by Peter Sewell) Asynchronous process calculi: the first-order and higher-order paradigms (Tutorial) (by Davide Sangiorgi)
Disco is an oss implementation of the Map-Reduce framework for distributed computing. Disco supports parallel computations over large data sets on unreliable cluster of computers. The Disco core is written in Erlang. Users of Disco typically write jobs in Python, which makes it possible to express even complex algorithms or data processing tasks often only in tens of lines of code. This means that you can quickly write scripts to process massive amounts of data. Disco was started at Nokia Research Center as a lightweight framework for rapid scripting of distributed data processing tasks. This far Disco has been succesfully used, for instance, in parsing and reformatting data, data clustering, probabilistic modelling, data mining, full-text indexing, and log analysis with hundreds of gigabytes of real-world data. Linux is the only supported platform but you can run Disco in the Amazon's Elastic Computing Cloud.
S. Marr, M. Haupt, и T. D'Hondt. Proceedings of the 3rd Workshop on Virtual Machines and Intermediate Languages, стр. 3:1--3:2. New York, NY, USA, ACM, (октября 2009)(extended abstract).
M. Herlihy, и J. Wing. POPL '87: Proceedings of the 14th ACM SIGACT-SIGPLAN symposium on Principles of programming languages, стр. 13--26. New York, NY, USA, ACM, (1987)
S. Dekeyser, и J. Hidders. ADC '04: Proceedings of the fifteenth Australasian database conference, стр. 93--101. Darlinghurst, Australia, Australia, Australian Computer Society, Inc., (2004)
H. Schippers, T. Van Cutsem, S. Marr, M. Haupt, и R. Hirschfeld. Proceedings of the Fourth Workshop on the Implementation, Compilation, Optimization of Object-Oriented Languages, Programs and Systems (ICOOOLPS), стр. 4--9. ACM, (06.07.2009)
M. Miller, E. Tribble, и J. Shapiro. Symposium on Trustworthy Global Computing, том 3705 из Lecture Notes in Computer Science, стр. 195--229. Springer, (апреля 2005)