JR is a language for concurrent programming. It is an imperative language that provides explicit mechanisms for concurrency, communication, and synchronization. JR is an extension of the Java programming language with additional concurrency mechanisms based on those in the SR (Synchronizing Resources) programming language. It is suitable for writing programs for both shared- and distributed-memory applications and machines; it is, of course, also suitable for writing sequential programs. JR can be used in applications such as parallel computation, distributed systems, simulation, and many others