Communicating Sequential Processes for JavaTM (JCSP)

The latest public release is  JCSP 1.1 Release Candidate 4 (rc4) [5,836,795 bytes]:

  • To download the above release, point at the link and SHIFT-LEFT-CLICK or RIGHT-CLICK.  Do not point and LEFT-CLICK - the file is a  JAR archive and your browser may to try to execute it!
  • This release is licenced under the Lesser GNU Public Licence, version 2.1 (LGPL 2.1). A copy is included with the distribution, or you can read an online version
  • To unpack the release, you need the jar tool from any JDK.  The saved download file should have the name jcsp-1.1-rc4.jar.  Execute the command "jar xf jcsp-1.1-rc4.jar".  This will unpack the release into the directory jcsp-1.1-rc4.
  • Read the README file included in the release for further installation details and change information since earlier releases.
  • Browse the documentation on-line.
  • Backgound and motivation for this work.
  • Source code is now available direct from the JCSP subversion repository:
  • svn checkout http://projects.cs.kent.ac.uk/projects/jcsp/svn/jcsp/tags/jcsp-1.1-rc4/
    (for the latest release)
    svn checkout http://projects.cs.kent.ac.uk/projects/jcsp/svn/jcsp/trunk/
    (for the latest development version)

  Communicating Process Architectures 2014 (University of Oxford) conference home page, 24-27th. August, 2014.

  The previous web site for JCSP 0.5 EA is available for background inforrmation only.
  Please do not download from there any more ...

  Peter Welch and Neil Brown.
  (11th. April, 2014)


JCSP Support Materials ...

"Integrating and Extending JCSP"

  In Proceedings of Communicating Process Architectures 2007 (CPA 2007), pp. 349-370, University of Surrey, 10th. July, 2007, 
  IOS Press, ISBN 978-1-58603-767-3,
  Peter Welch, Neil Brown, James Moores, Kevin Chalmers, Bernhard Sputh. 

  • paper (PDF)
  • slides (PPT)
  • slides (PDF)
  • "Process Oriented Design for Java: Concurrency for All"

      Keynote Tutorial, Global and Collaborative Computing Workshop, ICCS 2002, Amsterdam (22nd. April, 2002)
      [Revised from: IFIP WG 2.4, Autumn School on Software Technology, Cape Town, South Africa (25th. March, 2002 )]
      [Revised from: PDPTA 2001 Tutorial, Las Vegas, Nevada, USA (24th. June, 2001)]
      [Revised from: Java in HPC Workshop, HPCN-Europe, Amsterdam  (8 May, 2000)]
      [Revised from: Java Consortium Meeting, Kyoto, Japan  (8 November, 1999)]
      Peter Welch.

    "CSP Networking for Java (JCSP.net)"

      Global and Collaborative Computing Workshop, ICCS 2002, Amsterdam (22nd. April, 2002)
      Peter Welch. 

  • Abstract: (HTML)
  • slides (PPT)
  • PDF version of the above (1 slide per page)   (2 slides per page)   (6 slides per page)
  • Note: these slides have been extended to include preliminary application benchmark results.
  • "Communicating Processes, Components and Scaleable Systems"

      IFIP WG 2.4, San Miniato, Italy  (28th. May, 2001)
      Peter Welch. 

  • Abstract: (HTML)
  • slides (PPT)
  • PDF version of the above (1 slide per page)   (2 slides per page)   (6 slides per page)
  •   "A CSP Model for Java Threads (and Vice-Versa)"

      Logic and Semantics Seminar, University of Cambridge Computer Laboratory  (16th. March, 2001)
      Peter Welch.

    * The above Powerpoint presentation requires the Bookshelf Symbol 5 and Wingdings fonts for the CSP internal and external choice operators.

      Java Threads Mailing List (java-threads@kent.ac.uk)

      "Concurrent Programming in Java (Design principles and patterns)" [2nd. Edition]

      Published by Addison-Wesley (November 1999)
      Doug Lea.

    • See the Online Supplement.
    • The final section (4.5 Active Objects) of the 2nd. edition gives an overview of CSP and uses the JCSP library for its examples.
      Communicating Threads for Java (CTJ)
    • CTJ is another library for Java providing the CSP model.
    • Developed at the University of Twente (Netherlands) by Gerald Hilderink and Andy Bakkers.
    • CTJ and JCSP share a common heritage and reinforce each otherís on-going development - we do talk to each other!
      The Kent Retargettable occam Compiler (KRoC)
    • If you are interested in this page, check out the KRoC site next door.  This is a full GPL source release of the occam compiler, run-time kernel, libraries and associated tools for PC platforms running Linux.  occam supports the same CSP model for concurrency as JCSP - but built into the language rather than through libraries.  The compiler guards against race hazards caused by accidental resource sharing between parallel processes.  Non-determinism is introduced only by explicit request (i.e. occam concurrency is, by default, deterministic).  The KRoC run-time kernel, on a 3 GHz. Pentium III, switches context between occam processes in around 20 nanoseconds.  The process startup/shutdown cost is around similar.
    • Teaching resources for a short course on occam-pi (which extends the classical language with mobile mechanisms from the pi-calculus) can be found here.
      Communicating Process Architectures Conferences   WoTUG Paper and Proceedings Database   Peter Welch.
      (11th. April, 2014)

    Java is a trademark of Sun Microsystems, Inc. in the U.S. and other countries.