Book Description
During the past fifteen years concurrency in programming languages such as Java rose and fell, and again became popular. At this moment developers advise us to avoid concurrency in programming. They are using a host of deprecated methods in the latest releases How are we to understand the love-hate relationship with what should be a widely used approach of tackling real-world problems? The aim of rchitectures, Languages and Techniques is to encourage the safe, efficient and effective use of parallel computing. It is generally agreed that concurrency is found in most real applications and that it should be natural to use concurrency in programming. However, there has grown up a myth that concurrency is "hard" and only for the hardened expert. The papers collected in this book cover the whole spectrum of concurrency, from theoretical underpinnings to applications. The message passing style of concurrency, developed in the Communicating Sequential Processes (CSP) approach, is considered, and extensions are proposed. CSP's realization in the programming language occam is used directly for applications as diverse as modeling of concurrent systems and the description of concurrent hardware. This latter application may be compared to the use of Java for the same purpose. Concurrency and the use of Java is the subject of further papers, as is the provision of CSP-like facilities in Java and C and techniques to use these languages to construct reliable concurrent systems. At a time when concurrency gives headaches, this book brings a welcome breath of fresh air. Concurrency can really be a positive way forward.