A Compiler for the Core Join Calculus: cjcc, version 0.5.2. Copyright (C) 1996, 1997, 2004 Peter Selinger. Distribution: --------------- README - this file cjcc-linux* - Linux executable cjcc-solaris* - Sun Solaris executable examples/ - join calculus sample files j* - batch file for one-step compilation join-0.5.2.tar.gz - archive with complete source code Description: --------------- The Core Join Calculus is an experimental programming language described in [1] C. Fournet, G. Gonthier. The reflexive CHAM and the join-calculus. In POPL'96. http://research.microsoft.com/~fournet/papers/reflexive-cham-join-calculus.ps http://dx.doi.org/10.1145/237721.237805 [2] C. Fournet, G. Gonthier, J-J. Levy, L. Maranget, D. Remy. A Calculus of Mobile Agents. In CONCUR'96, p.406-431. ftp://ftp.inria.fr/INRIA/Projects/cristal/Didier.Remy/mobile-agents.ps.gz 'cjcc' is an experimental compiler of the core join calculus into C. Feel free to download it, play with it, and change it as you like. Usage: --------------- To compile a join calculus file, first use 'cjcc' to generate C code, then use a C-compiler to get an executable file. (Or use the batch file 'j'). For example, to compile and run the file 'numbers.j', type cjcc -o numbers.c numbers.j gcc -o numbers numbers.c numbers Syntax: --------------- Here is a brief summary of the syntax used by cjcc: Values v ::= x | 123 | "abc" | true | false | _ Processes P ::= x {} {P} P | P def D in P def /* name */ D in P Definitions D ::= J --> P D and D Join Patterns J ::= x J | J (all yi distinct names) System calls: write readint equal similar less plus similar minus,times,div if Changes: --------------- v0.5.2 2004/11/24: fixed expected number of shift/reduce conflicts v0.5.1 2004/11/22: minor fixes for compatibility with recent versions of bison v0.5 1997/09/04: minor update. A bug reported by Luca Padovani, which affected only the "DEBUG" mode, has been fixed. v0.4 1996/10/01: first public release. License: --------------- This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.