Stef
http://www.talentsplace.com/syndication1/inria/ukdoc/details.html?id=PNGFK02...
Environnement Being able to cope with unanticipated software changes is an important challenge for today's languages and infrastructure. Hot-upgrade (i.e., loading code at run-time while a different version of the same code may be already running) is a key mechanism to support dynamic unanticipated changes. It enables applications to evolve at runtime, while being executed. In statically-typed languages such as Java, hot-upgrade is traditionally obtained by using wrappers, proxy objects, and dynamic bytecode adaptation. However the rigidity of Java classloaders and the type system constrain code unloading and structural modification. Dynamically typed languages such as CLOS and Smalltalk do not have such typing problems because of their dynamic nature. Hot-upgrade is implicitely supported by those language thanks to their extended reflection. It appears that a dynamic code update may break existing code since there is no garantee that an upgrade will perform as expected (e.g., protocol preser vation).
Missions A possible roadmap should address the following points: - performing a study of existing modules systems in dynamic languages, - study the instance update migration mechanisms available in CLOS MOP and Smalltalk, - study the dynamic application of aspects in AOP language extensions, - study of the update related aspects in component models such as Fractal or OSGI, - defining a robust and declarative module system enabling static checks, - definition of a specific meta-model for code as well as for changes to support static analyses, - definition of a language to express set of static checks and verifications that could be performed on a dynamically typed language.
Activités The goal of this PhD is to propose a more robust software code upgrade mechanism for dynamic languages. Different strategies for code replacement, evolution, adaptation will have to be defined in order to cope with the need of code tangling, software evolution, context awareness and security. A validation will have to be conducted on the open source Squeak platform and will have to address challenges raised by the presence of legacy code and Squeak's highly interactive programming environment.
Stef
squeak-fr@lists.squeakfoundation.org