Nicolas Maisonneuve wrote:

On Wed, 02 Feb 2005 23:53:37 +0100, Sylvain Wallez <[EMAIL PROTECTED]> wrote:


<snip/>

Revenons aussi sur l'historique de flowscript. En 2002, Ovidiu Predescu,
un committer Cocoon qui bossait chez HP (il est chez Google maintenant)
faisait des d�veloppements exploratoires sur l'utilisation des
continuations pour �crire le contr�leur des applis web. Mais il faisait
�a en Scheme, un dialecte de Lisp. Int�ressant, mais vraiment
exp�rimental (Nicolas, tu pr�f�res Lisp � Javascript?).



C'est vrai ! comme je suis dans l'IA , j'ai l'impression d'avoir
utiliser plus souvent le Lisp que le javscript, mais bon je dois �tre
assez rare comme personne :-)



On est au moins deux : j'en ai �crit pas mal quand j'�tais jeune (j'ai fait une sp�cialisation IA). Mais c'�tait il y a bient�t 15 ans :-(


Concernant le flowscript ..  effectivement je n'avais pas du tout penser aux 
non-developpeurs ... me voil� fix� :)


Par contre je suis �tonn� qu'on ait besoin de l'aspect fonctionnel
(lisp, javascrit) pour cela ...j'imagine qu'il a des raisons mais je
ne vois pas l'utilit� de langages fonctionnels dans ce cadre. ai je
loup� un truc ?



Une continuation est une fonction :-)

Plus d'infos sur http://wiki.apache.org/cocoon/RhinoWithContinuations

<snip/>

De l� a �merg� Javaflow, qui apporte les continuations � Java. C'est
loin d'�tre trivial, puisqu'une continuation est une photo de la pipe
d'appel et de toutes les variables locales. L'impl�mentation des
continuations en Java a donc requis l'instrumentation du bytecode Java.
C'est notre ami Torsten Curdt qui s'est charg� d'int�grer un outil
existant (un travail de recherche d'une universit� belge) pour permettre
cela.



Pour le javaflow C'est vrai, comme tout pb en g�n�ral ca parait
simple mais c'est toujours plus compliqu�. Je ne pensais pas qu'il
y'avait de la manipulation du bytecode � l'int�rieur (manipulation du
bytecode = instruction de r�flexion du code ou c'est autre chose ?)



C'est le bytecode (= assembleur Java) qui est modifi� : autour de chaque appel de m�thode, on ajoute l'empilement/d�pilement des variables locales dans l'objet qui repr�sente la continuation pour pouvoir d'une part les conserver et d'autre part les remettre en place lors de l'appel de la continuation.


Apr�s Lisp, nous voil� dans les profondeurs de l'assembleur (mais un assembleur objet!). Tout �a pour vous rendre la vie plus facile, chers utilisateurs :-)

Sylvain

--
Sylvain Wallez                                  Anyware Technologies
http://www.apache.org/~sylvain           http://www.anyware-tech.com
{ XML, Java, Cocoon, OpenSource }*{ Training, Consulting, Projects }


--------------------------------------------------------------------- Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/ Pour vous desinscrire : mailto:[EMAIL PROTECTED] Autres commandes : mailto:[EMAIL PROTECTED]



Répondre à