Dr. Gul Agha is a professor at the University of Illinois at Urbana-Champaign where he serves as director of the Open Systems Laboratory. Dr. Gul Agha has conducted research in artificial intelligence, programming languages, formal methods and software engineering with special interest in parallel and distrbuted algorightims and applications, network embedded systems software, large-scale multi-agent systems and concurrent programming languages and semantics.
From the Open Systems Laboratory:
Dr. Gul Agha is Director of the Open Systems Laboratory at the University of Illinois at Urbana-Champaign and a Professor in the Department of Computer Science. His widely cited work, “Actors: A Model of Concurrent Computing in Distributed Systems,” (MIT Press, 1986) provided a basis for a number of research projects in concurrent programming. He has co-edited another book, “Research Directions in Concurrent Object Oriented Programming” (MIT Press, 1993).
The goal of Professor Agha’s research is to understand the nature of concurrent computation. Results of the research will lead to new ways for building and maintaining open distributed systems. Specifically, Agha’s group is developing concurrent programming languages and systems which support applications with high-performance, fault-tolerance or real-time requirements. The group’s research is both theoretical and practical. The goal of the theory is to provide a clear semantics for new programming constructs and software composition techniques. The goal of developing systems to experiment with the ideas and provide a proof of principle.
The research is based on the Actors, a model of concurrent objects for which Professor Agha is recognized as a prime exponent. Some recent accomplishments of his group include: building the fastest run-time systems available to support fine-grained object migration; developing a theory of actor systems which provides powerful proof techniques for open distributed computing; a distributed real-time programming language; visualization tools; a software architecture for defining reusable protocols; and a methodology for coordinating distributed objects.