cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylv...@apache.org>
Subject Re: 2 questions
Date Thu, 03 Feb 2005 15:12:04 GMT
Nicolas Maisonneuve wrote:

>On Wed, 02 Feb 2005 23:53:37 +0100, Sylvain Wallez <sylvain@apache.org> 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:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message