Gul Agha

Gul Agha is Director of the Open Systems Laboratory at the University of Illinois at Urbana-Champaign and an Associate Professor in the Department of Computer Science.

  • Research Directions in Concurrent Object-Oriented Programming

    Research Directions in Concurrent Object-Oriented Programming

    Gul Agha, Peter Wegner, and Akinori Yonezawa

    This collection of original research provides a comprehensive survey of developments at the leading edge of concurrent object-oriented programming. It documents progress—from general concepts to specific descriptions—in programming language design, semantic tools, systems, architectures, and applications. Chapters are written at a tutorial level and are accessible to a wide audience, including researchers, programmers, and technical managers.

    The problem of designing systems for concurrent programming has become an increasingly important area of research in computer science with a concomitant increase in the popularity of object-based programming. Because parallelism is a natural consequence of the use of objects, the development of systems for concurrent object-oriented programming is providing important software support for a new generation of concurrent computers.

    • Hardcover $69.95
    • Paperback $65.00
  • Research Directions in Object-Oriented Programming

    Gul Agha, David Beech, Daniel G. Bobrow, Ole-Johan Dahl, Joseph A. Goguen, Brent Hailpern, Kenneth M. Kahn, Ole Lehrmann Madsen, David Maier, Andrea Skarra, Harold L. Ossher, Steven Reiss, Herbert Schwetman, Reid Smith, Alan Snyder, Peter Wegner, and Stanley Zdonik

    Once a radical notion, object-oriented programming is one of today's most active research areas.

    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.

    Research Directions in Object-Oriented Programming is included in the Computer Systems series, edited by Herb Schwetman.

    • Hardcover $75.00
  • Actors


    A Model of Concurrent Computation in Distributed Systems

    Gul Agha

    The transition from sequential to parallel computation is an area of critical concern in today's computer technology, particularly in architecture, programming languages, systems, and artificial intelligence. This book addresses central issues in concurrency, and by producing both a syntactic definition and a denotational model of Hewitt's actor paradigm—a model of computation specifically aimed at constructing and analyzing distributed large-scale parallel systems—it substantially advances the understanding of parallel computation.

    ContentsIntroduction • General Design Decisions • Computation in ACTOR Systems • A More Expressive Language • A Model for ACTOR Systems • Concurrency Issues • Abstraction and Compositionality • Conclusions

    • Hardcover $17.00
    • Paperback $25.00


  • Programming Distributed Computing Systems

    Programming Distributed Computing Systems

    A Foundational Approach

    Carlos A. Varela

    An introduction to fundamental theories of concurrent computation and associated programming languages for developing distributed and mobile computing systems.

    Starting from the premise that understanding the foundations of concurrent programming is key to developing distributed computing systems, this book first presents the fundamental theories of concurrent computing and then introduces the programming languages that help develop distributed computing systems at a high level of abstraction. The major theories of concurrent computation—including the π-calculus, the actor model, the join calculus, and mobile ambients—are explained with a focus on how they help design and reason about distributed and mobile computing systems. The book then presents programming languages that follow the theoretical models already described, including Pict, SALSA, and JoCaml. The parallel structure of the chapters in both part one (theory) and part two (practice) enable the reader not only to compare the different theories but also to see clearly how a programming language supports a theoretical model.

    The book is unique in bridging the gap between the theory and the practice of programming distributed computing systems. It can be used as a textbook for graduate and advanced undergraduate students in computer science or as a reference for researchers in the area of programming technology for distributed computing. By presenting theory first, the book allows readers to focus on the essential components of concurrency, distribution, and mobility without getting bogged down in syntactic details of specific programming languages. Once the theory is understood, the practical part of implementing a system in an actual programming language becomes much easier.

    • Hardcover $60.00