The goal of the PLEIAD (Programming Languages and Environments for Intelligent, Adaptable and Distributed Systems) laboratory is to explore how programming languages and development environments enable building software that is evolvable and adaptable. In particular we consider challenging contexts such as distributed and ubiquitous computing.
Programming languages have a life span. Currently, the most popular language is Java, but before Java C++ was the language of choice. Before C++, C was popular, before C, we had FORTRAN. A programming language is made with a a certain kind of hardware technology in mind, as well as a certain type of programs that will be written in that language. As technology changes, as well as the type of programs people are expected to write, programming languages become ever less practical to use in development. It is also for this reason that a lanuage itself is subject to change and evolution, as can be observed in the multitude of Java versions. With Java being more than 10 years old, a section of the software engineering community is looking towards what is being called the 'post-java world'. This is the search for programming langauges that are better suited to the challenges of the future. An example of this is the growing interest in the so-called 'dynamic languages' such as Python and Ruby.
Moreover, programming langugages play a central role in how programmers manage the complexity of computational systems. For example, currently Object-Oriented or Component-Oriented programming is the basis on which many large-scale systems are built. The incessant ubiquity of computation in all levels of society however implies that software is growing ever more complex. This entails that new linguistic support is needed to manage this complexity. One example of this new support is Aspect-Oriented Programming (AOP). AOP allows the modular definition of concerns that cut across the (Object-Oriented or Component-Oriented) structure of the application, such as security or coordination of activities. This results in less coupling and better reuse of the components or objects of the system, and better allows for dynamic adaptibility of the system.
Main Research Directions
The PLEIAD lab currently is performing research in the following three main areas: Aspect-Oriented Programming (AOP), program understanding and debugging, and programming of pervasive systems. We briefly detail these next.
Aspect-Oriented Programming. As we previously mentioned, AOP introduces new mechanisms to define software in a more modular and hence more adaptable form. AOP inherits strongly from the work on computational reflection, a topic on which the members of PLEIAD have previously focussed. In the AOP context, PLEIAD contributes to the research on aspect languages. The AOP communtity already disposes of an industrial-strength aspect langugage, AspectJ. However there are still a large number of open topics that need to be explored to allow the full potential of aspects in software development to be achieved. Currently, PLEIAD considers two of such topics: defining and building aspect languages, including languages that are specific to a given domain (e.g. a language for the management of transactions), and improving the mechanisms that control the impact of an aspect on a given system. This research is performed particularly considering the issues that arise when introducing aspects in systems that are complex due to their concurrent and distributed nature.
Debugging. Debugging consists in helping the developer to find errors in a given program. In more general terms, this is related to program understanding. In other words, the research question is on how to help a human being to understand what is happening during program execution. This in enough detail such that he or she is capable of modifying or correcting it. But all the while this has to be done at an appropriate abstraction level, such that the person is not overwhelmed by the complexity of the program. More specifically, PLEIAD is working on an 'omniscient' debugger. Such a debugger allows the user to navigate through the execution history of a program, forwards as well as backwards. This allows causal links to be followed, which are very difficult to reconstruct in current-day debuggers. An example of this is finding out at what time (and in which context) a given variable has been assigned an invalid value.
Pervasive Computing. Computing systems on mobile devices, for mobile users, that are integrated as transparantly in their daily life constitute the domain of pervasive computing or Ambient Intelligence. Such systems have to be able to detect their environment and dynamically adapt themselves to it. Programming this using present-day languages provokes a lot of complexity. This is due to the need of managing all the details that are related to the volatile nature of the ambient and of the network connections. PLEIAD works on langauges that are dedicated to this domain. These provide the right abstractions that allow the programmer to both specify how the environment is percieved and how the system should adapt. Currently, we are experimenting with the AmbientTalk language, developed in the PROG lab of the Vrije Universiteit Brussel (Belgium), a laboratory with which we actively collaborate. Furthermore, we are exploring how we can apply techniques from the domain of Artificial Intelligence to pervasive computing.
History and Achievements
The PLEIAD lab was inaugurated in November 2007, in the presence of Ron Goldman, Senior Staff Engineer of Sun Labs. Ron is currenlty working on the Sun SPOTS, devices created for ambient intelligence applications, which are equipped with a number of environment sensors and that run a Java Virtual Machine. When founded, PLEIAD consisted of two full-time professors, Johan Fabry and Éric Tanter, four doctoral students and one master student. New members are joining the lab, specifically Jessie Dedecker, creator of AmbientTalk, as a post-doctoral researcher. We expect other post-graduate students to join the lab this year and in the future.
While being a joung lab, PLEIAD already has achieved some international achievements in the different domains in which it performs research. In the ACM conference on Aspect-Oriented Software Development (AOSD 2008) a techical paper will be presented on scoping of dynamic aspects, a workshop will be organised on domain-specific aspect languages, and a demonstration will be given of the omniscient debugger TOD. A technical paper on TOD has been published at OOPSLA 2007, the reference conference of ACM in this area. Furthermore a different usage of TOD, for Aspect-Oriented Programming will be presented at the ACM Symposium on Applied Computing (SAC 2008). PLEIAD also organised a workshop on biologically inspired computing in December 2007, in Valparaiso. (BIC 2007). This workshop was attended by various international experts, both from Europe as the USA. Lastly, PLEIAD is involved as a founding member in the south-american collaboration network Latin AOSD, and participates in other international cooperation projects, specifically with INRIA in France.
More information can be found on http://pleiad.dcc.uchile.cl/