« Bluffant ! | Main | Vive la France »
 20050628 Tuesday June 28, 2005

Carré d'as

Le projet Jackpot vise à fournir de nouvelles fonctionnalités aux développeurs Java dans la gestion pure de leur code. Deux grands types d'outils sont mis à leur disposition: des outils d'analyse statique du code ayant comme but principal de donner des éléments objectifs de mesure de complexité et donc de fragilité potentielle des choix de programmation et d'autres outils dits de refactoring. Cette dernière technique vise à permettre des changements globaux du code (noms de classes, redéfinition de l'arbre d'héritage, ...) tout en conservant un source à la fois correct (dans le sens javac du terme) et plus solide (à partir des constations faites précédemment). C'est au cours de cette session, que j'ai découvert que le paragdime de base du refactoring est la règle de production si chère à mon passé dans l'intelligence artificielle. Voici un exemple de règle autorisant la correction des clauses conditionnelles un peu trop vite écrites:


(a==b ? 0 : // Values are equal

(a<b ? -1 : // (-0.0, 0.0) or (!NaN, NaN)

1)); // (0.0, -0.0) or (NaN, !NaN)

Ceci n'est pas sans me rappeler le langage Prolog et son système d'unification, à la différence près que Jackpot permet un matching des parties gauche incluant la totalité de la syntaxe Java. De quoi faire pâlir Alain Colmerauer, mon ancien professeur.

factorial(0,1). 
  factorial(N,F) :- 
N>0, 
      N1 is N-1, 
             factorial(N1,F1), 
       F is N * F1.



[JavaOne 2005] ( June 28, 2005 08:45 AM ) Permalink | Comments [0]
Trackback URL: http://blogs.sun.com/neo/entry/carr%C3%A9_d_as
Comments:

Post a Comment:

Name:
E-Mail:
URL:

Your Comment:

HTML Syntax: NOT allowed