Object-Based Concurrent Computing


Book Description

The ECOOP '91 Workshop on Object-Based Concurrent Computing was organized toprovide a forum on concurrent, distributed and open-ended computing. The emphasis was on conceptual, theoretical and formal aspects, as well as practical aspects and sound experience, since such a viewpoint was deemed indispensible to investigate and establish a basis for future development. This volume contains 12 papers selected from 25 presented at the workshop, together with a paper by J.A. Goguen, who was an invited speaker at the workshop. The papers are classified into four categories: Formal methods (1): three papers are concerned with the formal semantics of concurrent objects based on process calculi. Formal methods (2): four papers are concerned with various formal approaches to the semantics of concurrent programs. Concurrent programming: three papers. Models: three papers areconcerned with models for concurrent systems.




The Concurrent C Programming Language


Book Description

Concurrent C is a superset of C that provides parallel programming facilities such as those for the declaring and creating processes, for process synchronization and interaction, and for process termination and abortion. Concurrent C was designed for the effective utilization of multiprocessors and multicomputers. Concurrent C, as a compile-time option, also works with C++, an object-oriented superset of C.




Principles of Concurrent and Distributed Programming


Book Description

Principles of Concurrent and Distributed Programming provides an introduction to concurrent programming focusing on general principles and not on specific systems. Software today is inherently concurrent or distributed - from event-based GUI designs to operating and real-time systems to Internet applications. This edition is an introduction to concurrency and examines the growing importance of concurrency constructs embedded in programming languages and of formal methods such as model checking.




Creating Components


Book Description

Concurrency is a powerful technique for developing efficient and lightning- fast software. For instance, concurrency can be used in common applications such as online order processing to speed processing and ensure transaction reliability. However, mastering concurrency is one of the greatest challenges for both new and veteran programmers. Softwar




Concurrency in Ada


Book Description

A major feature of the Ada programming language is the facilities it provides for concurrent programming. Alan Burns and Andy Wellings provide here a thorough and self-contained account of concurrent programming in Ada, and so show users, even beginners, how to harness the full power of the whole language. After giving an overview of the non-concurrent features of Ada, the authors proceed to examine in detail the uses of concurrent programming and the inherent difficulties in providing inter-process communication. The Ada tasking model is then introduced; the way it deals with these and related matters is explained in a number of separate chapters, covering system programming, real-time issues, distribution, object-oriented programming and re-use. This is the first book which deals with concurrent features in the new Ada standard, and it offers practical advice to the programmer needing to use it for embedded systems, while those interested more broadly in the development of programming languages will find many otherwise inaccessible issues probed in depth. It will thus be of value to professional software engineers and advanced students of programming alike; indeed, every Ada programmer will find it essential reading and a primary reference work. For the paperback edition the authors have made revisions throughout the text, updating and correcting where appropriate.




Research Directions in Object-oriented Programming


Book Description

Once a radical notion, object-oriented programming is one of today's most active research areas. It is especially well suited to the design of very large software projects involving many programmers all working on the same project. The original contributions in this book will provide researchers and students in programming languages, databases, and programming semantics with the most complete survey of the field available. Broad in scope and deep in its examination of substantive issues, the book focuses on the major topics of object-oriented languages, models of computation, mathematical models, object-oriented databases, and object-oriented environments. The object-oriented languages include Beta, the Scandinavian successor to Simula (a chapter by Bent Kristensen, whose group has had the longest experience with object-oriented programming, reveals how that experience has shaped the group's vision today); CommonObjects, a Lisp-based language with abstraction; Actors, a low-level language for concurrent modularity; and Vulcan, a Prolog-based concurrent object-oriented language. New computational models of inheritance, composite objects, block-structure layered systems, and classification are covered, and theoretical papers on functional object-oriented languages and object-oriented specification are included in the section on mathematical models. The three chapters on object-oriented databases (including David Maier's "Development and Implementation of an Object-Oriented Database Management System," which spans the programming and database worlds by integrating procedural and representational capability and the requirements of multi-user persistent storage) and the two chapters on object-oriented environments provide a representative sample of good research in these two important areas. Bruce Shriver is a researcher at IBM's Thomas J. Watson Research Center. Peter Wegner is a professor in the Department of Computer Science at Brown University. Research Directions in Object-Oriented Programmingis included in the Computer Systems series, edited by Herb Schwetman.




Concurrent Programming: Algorithms, Principles, and Foundations


Book Description

This book is devoted to the most difficult part of concurrent programming, namely synchronization concepts, techniques and principles when the cooperating entities are asynchronous, communicate through a shared memory, and may experience failures. Synchronization is no longer a set of tricks but, due to research results in recent decades, it relies today on sane scientific foundations as explained in this book. In this book the author explains synchronization and the implementation of concurrent objects, presenting in a uniform and comprehensive way the major theoretical and practical results of the past 30 years. Among the key features of the book are a new look at lock-based synchronization (mutual exclusion, semaphores, monitors, path expressions); an introduction to the atomicity consistency criterion and its properties and a specific chapter on transactional memory; an introduction to mutex-freedom and associated progress conditions such as obstruction-freedom and wait-freedom; a presentation of Lamport's hierarchy of safe, regular and atomic registers and associated wait-free constructions; a description of numerous wait-free constructions of concurrent objects (queues, stacks, weak counters, snapshot objects, renaming objects, etc.); a presentation of the computability power of concurrent objects including the notions of universal construction, consensus number and the associated Herlihy's hierarchy; and a survey of failure detector-based constructions of consensus objects. The book is suitable for advanced undergraduate students and graduate students in computer science or computer engineering, graduate students in mathematics interested in the foundations of process synchronization, and practitioners and engineers who need to produce correct concurrent software. The reader should have a basic knowledge of algorithms and operating systems.




Concurrent Programming in Java


Book Description

Software -- Programming Languages.




Pattern-Oriented Software Architecture, Patterns for Concurrent and Networked Objects


Book Description

Designing application and middleware software to run in concurrent and networked environments is a significant challenge to software developers. The patterns catalogued in this second volume of Pattern-Oriented Software Architectures (POSA) form the basis of a pattern language that addresses issues associated with concurrency and networking. The book presents 17 interrelated patterns ranging from idioms through architectural designs. They cover core elements of building concurrent and network systems: service access and configuration, event handling, synchronization, and concurrency. All patterns present extensive examples and known uses in multiple programming languages, including C++, C, and Java. The book can be used to tackle specific software development problems or read from cover to cover to provide a fundamental understanding of the best practices for constructing concurrent and networked applications and middleware. About the Authors This book has been written by the award winning team responsible for the first POSA volume "A System of Patterns", joined in this volume by Douglas C. Schmidt from University of California, Irvine (UCI), USA. Visit our Web Page




ECOOP 2010 -- Object-Oriented Programming


Book Description

This book constitutes the refereed proceedings of the 24th European Conference on Object-Oriented Programming, ECOOP 2010, held in Maribor, Slovenia, in June 2010. The 24 revised full papers, presented together with one extended abstract were carefully reviewed and selected from a total of 108 submissions. The papers cover topics such as programming environments and tools, theoretical foundations of programming languages, formal methods, concurrency models in Java, empirical methods, type systems, language design and implementation, concurrency abstractions and experiences.