Stef
http://www.talentsplace.com/syndication1/inria/ukdoc/details.html?id=PNGFK026203F3VBQB6G68LOE1&LOV5=4509&LOV2=4486&LG=EN&Resultsperpage=20&nPostingID=2380&nPostingTargetID=5692&option=52&sort=DESC&nDepartmentID=28Environnement
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