JR is a language for concurrent programming. It is an imperative language that provides explicit mechanisms for concurrency, communication, and s- chronization. JR is an extension of the Java programming language with - ditional 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. JR supports many "features" useful for concurrent programming. However, our goals have always been keeping the language simple and easy to learn and use. We have achieved these goals by integrating common notions, both sequ- tial and concurrent, into a few powerful mechanisms. We have implemented these mechanisms as part of a complete language to determine their feasibility and cost, to gain hands-on experience, and to provide a tool that can be used for research and teaching. The introduction to Chapter 1 expands on how JR has realized our design goals. Read more...
Abstract:
JR is an extension of the Java programming language with additional concurrency mechanisms based on those in the SR (Synchronizing Resources) programming language. The source code for all programming examples and the given parts of all programming exercises are available on the JR webpage. Read more...
Author(s): Keen, Aaron W.; Olsson, Ronald A
Series: International series in engineering and computer science 774
Publisher: Kluwer;Springer US
Year: 2004
Language: English
Pages: 365
Tags: Computer science.;Microprocessors.;Software engineering.;Computer programming.;Programming languages (Electronic computers);Operating systems (Computers);Computers.;JR (Computer program language);Parallel programming (Computer science);Information theory.;Programming Techniques.;Programming Languages, Compilers, Interpreters.;Processor Architectures.;Operating Systems.;Theory of Computation.;Software Engineering/Programming and Operating Systems.
Content: Extensions for Concurrency --
Overview of Extensions --
OP-Methods, Operations, and Capabilities --
Concurrent Execution --
Synchronization Using Shared Variables --
Semaphores --
Asynchronous Message Passing --
Remote Procedure Call --
Rendezvous --
Virtual Machines --
The Dining Philosophers --
Exceptions --
Inheritance of Operations --
Inter-Operation Invocation Selection Mechanism --
Applications --
Parallel Matrix Multiplication --
Solving PDEs: Grid Computations --
The Traveling Salesman Problem --
A Distributed File System --
Discrete Event Simulation --
Interfacing JR and GUIs --
Preprocessors for Other Concurrency Notations.