[Squeak-fr] Prolog pour 3.10

Dreyfuss Pierre-André (EDU) pierre-andre.dreyfuss at edu.ge.ch
Dim 15 Juin 13:27:50 UTC 2008


Bonjour,

Merci pour ces informations et précision.

cela confirme mon intuition que l'adaptation de prolog aux nouveau code revisé n'était possible que par des connaisseurs des mécanisme interne de Squeak et de l'évolution des versions.

J'avais utilisé il y a 20 ans prolog avec Smalltalk V  déjà pour coupler construction de figures géométriques et déductions. Avec mon projet v-Geom de construction de figures écrit avec E-toys et prolog dans Smalltalk 3.6 , je touchait au but :-).
 
Je pense que prolog intégré à Smalltalk donne de la valeur à Smalltalk.

L'utilisation de Prolog dans l'enseignement est complémentaire à Etoys, apportant un autre type de pensée axé sur les conditions et les contraintes d'un problème  au lieu des actions à faire  pour le résoudre.

Je vais pouvoir mettre dans les pages éducatives d'anciennes activités que j'avais faites avec mes élèves,
adaptées à Squeak Prolog et continuer avec prolog couplé à DrGeo et V-Geom.



Encore merci.

-------- Message d'origine--------
De: squeak-fr-bounces at lists.squeakfoundation.org de la part de Stéphane Rollandin
Date: sam. 14/06/2008 20:53
À: Squeak in french / Squeak en français
Objet : Re: RE : [Squeak-fr] Prolog pour 3.10
 
Dreyfuss Pierre-André (EDU) a écrit :
> Le Lparser détecte au format de la méthode s'il sagit d'une méthode smalltalk ou de la syntaxe prolog.

... c'est à ce point-là que j'ai modifié le parseur: voir discussion 
ci-dessous


> Le code "pseudo smalltalk" est en fait réellement du code  smalltalk car le parseur convertit la méthode écrite en prolog en la méthode smalltalk qui fait le travail dans l'environnement smalltalk. Mais l'utilisateur n'a à voir que le code prolog dans le browser, le but étant d'utiliser et de penser en prolog tout en communiquant et échangeant avec smalltalk.

le problème c'est que le source est dissocié du bytecode d'une façon qui 
a pu être acceptable à une époque mais qui ne l'est plus et que les 
outils comme le débuggeur, shout et le même le mécanisme de file-in ne 
comprennent pas. je pense que ce serait mieux si le prolog n'était 
qu'une simple extension de smalltalk, comme j'ai fait avec LispKit. 
c'est beaucoup plus interopérable.

> 
> 
> C'est ce qui ne marchait plus depuis 3.7. On avait dans le browser le code smalltalk et non le code prolog.
> Cela semble réparé maintenant.

pas exactement: ce que j'ai fait, c'est rapprocher la syntaxe prolog de 
la syntaxe smalltalk. auparavant, le nom de la méthode associée à un 
prédicat était caché; il était généré en bytecode mais pas en source, 
d'où le plantage de certains outils et protocoles.

auparavant, la méthode définissant les faits et clauses pour le prédicat 
father avait pour nom father: , mais cela n'apparaissait pas dans les 
browser. maintenant, la méthode est nommée dans le code source, 
apparaissant donc de façon normale dans le browser, et son nom est 
logicFather ou bien primlogicFather: si c'est une primitive prolog, 
c'est à dire une méthode en smalltalk (de un argument, assoc).

c'est essentiellement ça que j'ai changé (c'est un peu brut de 
décoffrage pour le moment, on peut l'optimiser de beaucoup)

> 
> Dans une méthode smalltalk on peut faire exécuter une expression prolog:
> 
> Exécute dans un workspace:
> 
> 
> LCompiler evaluate: 'Family new :? father(x,y)'
> 
> 
> La réponse est le même tableau que si tu avais exécuté la chaîne dans un Prolog WorkSpace:
> 
>  #(#('John' 'Mary') #('John' 'David') #('David' 'Jack') #('Arthur' 'Nancy'))

oui, mais le cut ne fonctionne pas. essaie Family new :? father(x,y),!. 
dans le workspace...

le problème, c'est que le modèle du Prolog Workspace est une instance de 
Prolog, alors que dans Family new :? father(x,y),!. le doIt qui 
implémente le cut s'attend à être exécuté dans le contexte de Family 
new, ce qui n'est donc pas le cas dans le workspace. cf le code dans 
LParser>>#predCut.

tout ceci est assez inélégant, et l'articulation entre instance et 
classe dans Prolog et ses sous-classes peu pertinente AMHA.

je suis très tenté de revoir en profondeur l'implémentation de ce 
Prolog.. :)


Stef


_______________________________________________
Squeak-fr mailing list
Squeak-fr at lists.squeakfoundation.org
http://lists.squeakfoundation.org/cgi-bin/mailman/listinfo/squeak-fr

-------------- section suivante --------------
Une pièce jointe non texte a été nettoyée...
Nom: non disponible
Type: application/ms-tnef
Taille: 5635 octets
Desc: non disponible
Url: http://lists.squeakfoundation.org/pipermail/squeak-fr/attachments/20080615/14101fde/attachment.bin


Plus d'informations sur la liste de diffusion Squeak-fr