le langage ne me gène pas. c'est juste qu'il faut apprendre toute la bibliothèque...
Et non moi j'apprends a la demande qd j'en ai besoin. Je me vois mal apprendre comment generer du postscript ou connaitre toutes les collections.
je suis mal placé pour juger: je suis tombé dans dans le postscript au tout début, quand c'était encore facile... ;)
Le point clef est d'apprendre a apprendre en utilisant senders/implementors. J'ai a dire que l'on commence a maitriser smalltalk qd on maitrise senders/implementors.
sender/implementor ???
[...]
dans mon jeune temps, j'avais fait un programme en Lisp (dialecte LeLisp) paramétrable via des scripts externes dans un langage
had-hoc.
comme je voulais avoir entierement acces à la structure
sous-jacente
en Lisp, le langage en question n'était qu'un parametrage du reader lisp, du lisp camouflé en quelque sorte. l'avantage du Lisp c'est que le programme compilé à acces à l'interprète et l'interprète peut acceder à toutes les parties compilées, voire même, bien que ce soit un peu dangereux, redefine une fonction (patch).
Mais tu peux faire la meme chose avec Smalltalk. Tu peux generer au vol une methodes modifier son byte-code, changer la classe d'un objet....
donc, si je lis dans un fichier du source dans un langage ad-hoc et le transformer au vol en smalltalk, je peux utiliser le smalltalk resultant comme si il faisait partie integrante du programme d'origine ?
mais je ne commencerai pas par la pour commencer.
Jette un oeil a certaines des techniques expliquees dans http://www.iam.unibe.ch/~ducasse/WebPages/Publications.html JOOP message passing control cela peut te donner des idees.
je l'ai imprimé. je le lierai ce soir à la veillée :)
Stef
Pierre.
On Monday, May 26, 2003, at 11:33 AM, Bru, Pierre wrote:
sender/implementor ???
les methodes qui envoient un message et les classes qui implementent une certaine methode
donc, si je lis dans un fichier du source dans un langage ad-hoc et le transformer au vol en smalltalk,
Ca depend si la transofrmation est possible. Mais ce que tu decris revient a ecrire un interpreteur pour un langage meme sans le trasnformer en Smalltalk.
je peux utiliser le smalltalk resultant
comme si il faisait partie integrante du programme d'origine ?
Pas compris la phrase
je peux utiliser le smalltalk resultant
comme si il faisait partie integrante du programme d'origine ?
Je pense (désolé si j'interprete mal) que cela revient à demander: est-il possible pour un programme smalltalk de se réécrire lui même,( question que je me pose aussi depuis un certain temps), un peu à la manière du "eval" lisp.
Je suppose que cela est theoriquement possible, puisque squeak est ecrit en pur smalltalk, donc c'est ce qui se passe à chaque fois qu'on ecrit un programme, non? Je suppose aussi que cela veut dire qu'on manier les fonction "accept" et "do it" des menu de manière programmatique sur n'importe quelle chaine de caractères..
Remi
Je pense (désolé si j'interprete mal) que cela revient à demander: est-il possible pour un programme smalltalk de se réécrire lui même,( question que je me pose aussi depuis un certain temps), un peu à la manière du "eval" lisp.
Oui mais le eval n'est pas explicitement appele. En fait tu peux invoquer le compilateur au vol pour generer une nouvelle methode (byte-code)
Je suppose que cela est theoriquement possible, puisque squeak est ecrit en pur smalltalk, donc c'est ce qui se passe à chaque fois qu'on ecrit un programme, non? Je suppose aussi que cela veut dire qu'on manier les fonction "accept" et "do it" des menu de manière programmatique sur n'importe quelle chaine de caractères..
qd tu fais accepte la chaine est scannee, parsee, un AST est construit, il est compile en byte code, installer dans le methoddict de la classe.
Qd on dit que Squeal est ecrit en lui-meme c'est different. l'interprete est ecrit en Slang un sous ensemble qui est traduit en C puis compile. ca c'est puor la VM mais sinon tout le reste est ecrit en Squeak.
Stef
Remi
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
qd tu fais accepte la chaine est scannee, parsee, un AST est construit, il est compile en byte code, installer dans le methoddict de la classe.
OK: la question est: peut on faire ceal programmatiquement? par exemple la chaine suivante : s:= 'PasteUpMorph subclass: #MonMorph instanceVariableNames: ' ' bozo kiri ' ' classVariableNames: '''' poolDictionaries: '''' category: '' essai'' '
Voila une chaine de caractères. Je suppose qu'il y a un code special pour representer les retours chariots, mais je ne le connais pas. Et bien entendu, cette chaine aura auparavant été contruite par un autre programme (parce que si on en connait le contenu à l'avance, la question n'a bien entendu aucun interet!). Le probleme est: est-il possible de la scanner, la parser, construire un AST (qu'est-ce que c'est?),la compiler, l'installer dans le methodaddict etc...ou cela est il en dehors des capacités d'un programmeur "moyen" ?
Remi
Salut
Perso, j'utilise: Compiler evaluate: textOrString for: anObject logged: logFlag
Par exemple: Compiler evaluate :'Object browse' for:self logged:false.
Dans un de mes projet, j'ai crée des classes dynamiquement comme ça.
Christophe
qd tu fais accepte la chaine est scannee, parsee, un AST est construit, il est compile en byte code, installer dans le methoddict de la classe.
OK: la question est: peut on faire ceal programmatiquement? par exemple la chaine suivante : s:= 'PasteUpMorph subclass: #MonMorph instanceVariableNames: ' ' bozo kiri ' ' classVariableNames: '''' poolDictionaries: '''' category: '' essai'' '
Voila une chaine de caractères. Je suppose qu'il y a un code special pour representer les retours chariots, mais je ne le connais pas. Et bien entendu, cette chaine aura auparavant été contruite par un autre programme (parce que si on en connait le contenu à l'avance, la question n'a bien entendu aucun interet!). Le probleme est: est-il possible de la scanner,
la
parser, construire un AST (qu'est-ce que c'est?),la compiler,
l'installer
dans le methodaddict etc...ou cela est il en dehors des capacités d'un programmeur "moyen" ?
Remi
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Merci! Je ne sais pas si cela repond aux questions de Pierre mais cela devrait repondre à la mienne!
Remi ----- Original Message ----- From: "Christophe TRICOT" Christophe.Tricot@etu.univ-savoie.fr To: "Squeak in french / Squeak en français" squeak-fr@lists.squeakfoundation.org Sent: Monday, May 26, 2003 12:55 PM Subject: Re: [Squeak-fr] Re: other language using squeak VM ?
Salut
Perso, j'utilise: Compiler evaluate: textOrString for: anObject logged: logFlag
Par exemple: Compiler evaluate :'Object browse' for:self logged:false.
Dans un de mes projet, j'ai crée des classes dynamiquement comme ça.
Christophe
qd tu fais accepte la chaine est scannee, parsee, un AST est construit, il est compile en byte code, installer dans le methoddict de la classe.
OK: la question est: peut on faire ceal programmatiquement? par exemple
la
chaine suivante : s:= 'PasteUpMorph subclass: #MonMorph instanceVariableNames: ' ' bozo kiri ' ' classVariableNames: '''' poolDictionaries: '''' category: '' essai'' '
Voila une chaine de caractères. Je suppose qu'il y a un code special
pour
representer les retours chariots, mais je ne le connais pas. Et bien entendu, cette chaine aura auparavant été contruite par un autre
programme
(parce que si on en connait le contenu à l'avance, la question n'a bien entendu aucun interet!). Le probleme est: est-il possible de la scanner,
la
parser, construire un AST (qu'est-ce que c'est?),la compiler,
l'installer
dans le methodaddict etc...ou cela est il en dehors des capacités d'un programmeur "moyen" ?
Remi
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
BIEN SUR!!!!! Je n'ai pas le temps maintenant mais regarde la class Class ainsi que Compiler
Compiler evaluate: '4+5' -> 9
Dis donc le systeme est la. faut le browser. Tout tout ce que vous voyez est en Squeak donc accessible.
On Monday, May 26, 2003, at 12:46 PM, Remi Sussan wrote:
qd tu fais accepte la chaine est scannee, parsee, un AST est construit, il est compile en byte code, installer dans le methoddict de la classe.
OK: la question est: peut on faire ceal programmatiquement? par exemple la chaine suivante : s:= 'PasteUpMorph subclass: #MonMorph instanceVariableNames: ' ' bozo kiri ' ' classVariableNames: '''' poolDictionaries: '''' category: '' essai'' '
Voila une chaine de caractères. Je suppose qu'il y a un code special pour representer les retours chariots, mais je ne le connais pas. Et bien entendu, cette chaine aura auparavant été contruite par un autre programme (parce que si on en connait le contenu à l'avance, la question n'a bien entendu aucun interet!). Le probleme est: est-il possible de la scanner, la parser, construire un AST (qu'est-ce que c'est?)
Abrbres de syntax Abstraite: en Smalltalk que pour les methodes.
,la compiler, l'installer dans le methodaddict etc...ou cela est il en dehors des capacités d'un programmeur "moyen" ?
Remi
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
Merci a toi aussi!
Remi ----- Original Message ----- From: "Stephane Ducasse" ducasse@iam.unibe.ch To: "Squeak in french / Squeak en français" squeak-fr@lists.squeakfoundation.org Sent: Monday, May 26, 2003 1:02 PM Subject: Re: [Squeak-fr] Re: other language using squeak VM ?
BIEN SUR!!!!! Je n'ai pas le temps maintenant mais regarde la class Class ainsi que Compiler
Compiler evaluate: '4+5' -> 9
Dis donc le systeme est la. faut le browser. Tout tout ce que vous voyez est en Squeak donc accessible.
On Monday, May 26, 2003, at 12:46 PM, Remi Sussan wrote:
qd tu fais accepte la chaine est scannee, parsee, un AST est construit, il est compile en byte code, installer dans le methoddict de la classe.
OK: la question est: peut on faire ceal programmatiquement? par exemple la chaine suivante : s:= 'PasteUpMorph subclass: #MonMorph instanceVariableNames: ' ' bozo kiri ' ' classVariableNames: '''' poolDictionaries: '''' category: '' essai'' '
Voila une chaine de caractères. Je suppose qu'il y a un code special pour representer les retours chariots, mais je ne le connais pas. Et bien entendu, cette chaine aura auparavant été contruite par un autre programme (parce que si on en connait le contenu à l'avance, la question n'a bien entendu aucun interet!). Le probleme est: est-il possible de la scanner, la parser, construire un AST (qu'est-ce que c'est?)
Abrbres de syntax Abstraite: en Smalltalk que pour les methodes.
,la compiler, l'installer dans le methodaddict etc...ou cela est il en dehors des capacités d'un programmeur "moyen" ?
Remi
Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
_______________________________________________ Squeak-fr mailing list Squeak-fr@lists.squeakfoundation.org http://lists.squeakfoundation.org/listinfo/squeak-fr
squeak-fr@lists.squeakfoundation.org