| 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. The JR implementation executes on UNIX-based systems (Linux, Mac OS X, and Solaris) and Windows-based systems. It is available free from the JR webpage. The JR Programming Language: Concurrent Programming in an Extended Java, an advanced-level text book, describes the JR programming language and illustrates how it can be used to write concurrent programs for a variety of applications. This text presents numerous small and large example programs. The source code for all programming examples and the given parts of all programming exercises are available on the JR webpage. Dr. Ronald A. Olsson and Dr. Aaron W. Keen, the authors of this text, are the designers and implementors of JR. The JR Programming Language: Concurrent Programming in an Extended Java is designed for upper-level undergraduate and graduate-level students in computer science. This book is also suitable for a professional audience, composed of researchers and practitioners in industry.
This book contains 21 chapters. The first chapter gives an overview of JR and includes a few sample programs. The remaining chapters are organized into two parts: extensions for concurrency and applications. In addition, the appendices contain language reference material, describe how to develop and execute programs, present an overview of JR’s implementation and performance, and trace JR’s historical roots.
This book is aimed at junior or senior level undergraduate students and at graduate students. Knowledge of Java is recommended and assumed, but knowledge of C++ or another object-oriented language should suffice. The additional maturity and knowledge gained via courses in data structures, programming languages, or operating systems will be beneficial, although not essential, in understanding the material. The specific prerequisite courses depend on how the book is to be used.
About the Authors Ronald A. Olsson received the B.A. degree in mathematics and in computer science, and the M.A. degree in mathematics, from the State University of New York, College at Potsdam. He received the M.S. degree in computer science from Cornell University and the Ph.D. degree in computer science from The University of Arizona. Dr. Olsson has been at the University of California, Davis since 1986, where he is currently a Professor of Computer Science. He received the UC Davis Academic Senate Distinguished Teaching Award in 1995. His research interests include concurrent programming, programming languages, verification, systems software, operating systems, and computer security. Dr. Olsson co-authored (with Greg Andrews) the book “The SR Programming Language: Concurrency in Practice”. |