|
Département d'ingénierie informatique |
We are looking for appropriate language abstractions in so-called dynamic languages, with the objective of applying them to mobile systems programming. The following ingredients seem the most appropriate:
We have argued that class-based languages are not adequate for programming mobile systems, i.e. ad-hoc mobile networks of wirelessly interconnected computers where nodes can enter and leave the network any time, for instance if a user enters or leaves a certain building. The use of object-based languages without the concept of class were advocated as a good alternative. The main problem with classes is that they are a universal, stateful resource sharing mechanism, which is a bad combination of ingredients for open distribution. For example, a node containing the same class as another node may appear in the network, but with a different value for a class variable or a different method implementation; this is an unsolvable conflict since none of the two versions is the \char`\"{}right\char`\"{} one. Other problem with classes are the fact that classes grow monotonically, getting deprecated methods, which wastes resources (storage space, network bandwidth) in a context where resources are scarce. Another problem is that idiosyncratic behaviour is even more important in mobile computing, which is harmed by the usage of classes. A last problem: upon sending a message to a node, a class and its superclass(es) need to be sent along, and if the language is statically typed, then argument-type, result-type and exception-type classes need to be sent also.