JR logo

The JR Concurrent Programming Language

The JR programming language extends Java to provide a rich concurrency model, based on that of the  SR concurrent programming language. JR provides dynamic remote virtual machine creation, dynamic remote object creation, remote method invocation, asynchronous communication, rendezvous, and dynamic process creation.  JR takes a novel object-oriented approach to synchronization, which leads to more flexible programming of concurrent applications like servers.  JR can, depending on one's particular definitions, also be considered a distributed programming language or a parallel programming language.

JR programs are written in an extended Java and then translated into standard Java programs.  The JR run-time support system is also written in standard Java.  JR runs on UNIX-based systems (Linux, Solaris, Mac OS X) and Windows.

The JR_distribution includes the JR translator; the JR virtual machine (JRVM); the JR verification tool and test suite (jrv, for checking proper functioning of the JR implementation); documentation; numerous JR example programs; and preprocessors that convert other concurrency notations (CCRs, monitors, and CSP) into JR.

For an overview of JR, see Chapter_1 of the JR_book.

older news
(Our future development efforts will focus on extending JR version 2.x, not JR version 1.x.)
The JR Book

JR book cover

(Click on cover for larger image of cover.)

 Click here for the publisher's page, which includes ordering information.
Click here to order from Amazon.com.

The JR Programming Language:  Concurrent Programming in an Extended Java
  Ronald A. Olsson and Aaron W. Keen
Kluwer Academic Publishers (now Springer), 2004
ISBN 1-4020-8085-9