Seminars in LUMS

Re: Seminars in LUMS

Abstract:

Computing systems are no longer the pampered, prized possession they were back in the 1970s. Computing devices no longer fill an entire (air-conditioned) room or cost millions of dollars. You no longer need a Ph.D. in computer science for using a computer. In fact, people regularly own and carry more than one computing device and often use computers imperceptibly as part of their daily life.

In this talk, I will argue that while computing devices have continued to become smaller, faster and cheaper, our fundamental paradigm for "programming" computers is still reminiscent of the 1970s. You must still learn an imperative language like Java/C++ or (God forbid) Matlab to program a computer and painfully specify each step in a recipe-like enlisting of the commands the computer must follow in a stipulated environment.

On the other hand, modern computing environments are highly dynamic and heterogeneous in nature. Applications in such an environment must be able to continuously adapt to changes in user locations and needs, respond to component failures and newly available resources, and maintain continuity of service despite changes in available resources. Such behavior necessitates a "goal-oriented" system which frequently re-evaluates available alternatives and may make heuristic compromises to best address the application needs with imperfect resources.

In this talk, I will describe our work on series of goal-oriented, self-adaptive systems developed as part of MIT's Project Oxygen. In such a system, a user initiates a program by only providing an under-specified "intent" (the "what"), while the system automatically generates and sustains an implementation (the "how") in a dynamically changing environment. I will conclude the talk with my recent thoughts on a radically new programming language designed for such self-adaptive systems. This work received the Mark Weiser Award in 2008 -- the most prestigious award in the field of pervasive computing.