Maxime et Olivier ont déjà mentionné le désir de faire la conception d'un nouveau langage de programmation dans le cadre d'études doctorales. Voici un exemple de PhD réussi en décembre dernier avec cette approche:
Gnu epsilon - an extensible programming language http://arxiv.org/abs/1212.5210
/Reductionism is a viable strategy for designing and implementing practical programming languages, leading to solutions which are easier to extend, experiment with and formally analyze/. We formally specify and implement an extensible programming language, based on a minimalistic first-order imperative core language plus strong abstraction mechanisms, reflection and self-modification features. The language can be extended to very high levels: by using Lisp-style macros and code-to-code transforms which automatically rewrite high-level expressions into core forms, we define closures and first-class continuations on top of the core. Non-self-modifying programs can be analyzed and formally reasoned upon, thanks to the language simple semantics. We formally develop a static analysis and prove a soundness property with respect to the dynamic semantics. We develop a parallel garbage collector suitable to multi-core machines to permit efficient execution of parallel programs.
L'important c'est la thèse, que j'ai mise en italique, qui est avancée et supportée par l'implémentation et qui justifie la démarche. Notons qu'il ne s'agit pas d'un argument de performance et que l'étendue des fonctionnalités supportées semble suffisant pour supporter la thèse. Pour le reste, je dois encore lire la thèse pour juger du choix des primitives ;-).
Erick
PS: Originellement découvert sur Lambda-the-Ultimate: http://lambda-the-ultimate.org/node/4671 http://lambda-the-ultimate.org/node/4671