Occam Programming Manual


Book Description







Transputer Reference Manual


Book Description

A transputer is a computer on a chip. This reference describes transputer architecture and provides data for a number of devices.




Theories of Programming


Book Description

Sir Tony Hoare has had an enormous influence on computer science, from the Quicksort algorithm to the science of software development, concurrency and program verification. His contributions have been widely recognised: He was awarded the ACM’s Turing Award in 1980, the Kyoto Prize from the Inamori Foundation in 2000, and was knighted for “services to education and computer science” by Queen Elizabeth II of England in 2000. This book presents the essence of his various works—the quest for effective abstractions—both in his own words as well as chapters written by leading experts in the field, including many of his research collaborators. In addition, this volume contains biographical material, his Turing award lecture, the transcript of an interview and some of his seminal papers. Hoare’s foundational paper “An Axiomatic Basis for Computer Programming”, presented his approach, commonly known as Hoare Logic, for proving the correctness of programs by using logical assertions. Hoare Logic and subsequent developments have formed the basis of a wide variety of software verification efforts. Hoare was instrumental in proposing the Verified Software Initiative, a cooperative international project directed at the scientific challenges of large-scale software verification, encompassing theories, tools and experiments. Tony Hoare’s contributions to the theory and practice of concurrent software systems are equally impressive. The process algebra called Communicating Sequential Processes (CSP) has been one of the fundamental paradigms, both as a mathematical theory to reason about concurrent computation as well as the basis for the programming language occam. CSP served as a framework for exploring several ideas in denotational semantics such as powerdomains, as well as notions of abstraction and refinement. It is the basis for a series of industrial-strength tools which have been employed in a wide range of applications. This book also presents Hoare’s work in the last few decades. These works include a rigorous approach to specifications in software engineering practice, including procedural and data abstractions, data refinement, and a modular theory of designs. More recently, he has worked with collaborators to develop Unifying Theories of Programming (UTP). Their goal is to identify the common algebraic theories that lie at the core of sequential, concurrent, reactive and cyber-physical computations.




Functional Programming, Concurrency, Simulation and Automated Reasoning


Book Description

This collection of papers arose from a series of lectures for workers in computer science and other disciplines. The lectures were intended to familiarize them with some of the most exciting advanced computer based systems for the conceptualization, design, implementation, simulation, and logical analysis of applications in these disciplines. The collection presents some strong motivational points for the use of theory based systems in the areas of functional programming, concurrency, simulation, and automated reasoning, highlighting some of their advantages and disadvantages relative to conventional systems. The papers are mostly the work of individuals who were among the originators of the systemspresented. The volume is intended as a contribution to narrowing the learning gap facing conventional computer users when they wish to use advanced theory based systems. The papers are meant for a wide audience and should not require great mathematical sophistication for their comprehension. The papers contain numerous references for those wishing to pursue a topic in greater depth.




Concurrent Programming


Book Description

This textbook is designed as a first book on concurrent programming for computer science undergraduates, and provides a comprehensive introduction to the problems of concurrency. Concurrency is of vital importance in many areas of computer science, particularly in operating systems. It is also increasingly being taught in undergraduate courses. The book builds on the student's familiarity with sequential programming in a high level language, which will make it very accessible to computer science students. The book is concerned mainly with the high level aspects of concurrency, which will be equally applicable to traditional time sliced or more recent truly parallel systems.







Code Generation — Concepts, Tools, Techniques


Book Description

Code Generation - Concepts, Tools, Techniques is based upon the proceedings of the Dagstuhl workshop on code generation which took place from 20-24 May 1991. The aim of the workshop was to evaluate current methods of code generation and to indicate the main directions which future research is likely to take. It provided an excellent forum for the exchange of ideas and had the added advantage of bringing together European and American experts who were unlikely to meet at less specialised gatherings. This volume contains 14 of the 30 papers presented at the Dagstuhl workshop. The papers deal mainly with the following four topics: tools and techniques for code generation, code generation for parallel architectures, register allocation and phase ordering problems, and formal methods and validations. Most of the papers assess the progress of on-going research work, much of which is published here for the first time, while others provide a review of recently completed projects. The volume also contains summaries of two discussion groups which looked at code generation tools and parallel architectures. As a direct result of one of these discussions, a group of the participants have collaborated to make a pure BURS system available for public distribution. This system, named BURG, is currently being beta-tested. Code Generation - Concepts, Tools, Techniques provides a representative summary of state-of-the-art code generation techniques and an important assessment of possible future innovations. It will be an invaluable reference work for researchers and practitioners in this important area.




Introduction to occam 2 on the Transputer


Book Description

The aim of this student text is to provide support for practical programming in concurrency, using the OCCAM 2 computer language. Although readers do not require previous experience of writing parallel computer programs, a general knowledge of programming techniques is assumed.




Programming Distributed Systems


Book Description




Recent Books