caml-list - the Caml user's mailing list
 help / color / mirror / Atom feed
* (*)CaML -> SML ?
@ 1998-05-05 13:06 Pascal Poizat
  1998-05-11 10:12 ` Daniel de Rauglaudre
  1998-05-12  1:42 ` (*)CaML -> SML ? / SML -> Caml ? Jacques GARRIGUE
  0 siblings, 2 replies; 4+ messages in thread
From: Pascal Poizat @ 1998-05-05 13:06 UTC (permalink / raw)
  To: caml-list

Bonjour,

Il y a pas mal d'articles ou d'outils qui se basent sur SML qui semble
bien implante dans le monde anglo-saxon.
Je pense par exemple a Design/CPN.
Cependant, personnellement j'utilise Camllight et je me mets a Objective
CaML.

Je me demandais s'il y avait un outil du style (*)CaML vers SML en
passant
par CaMLp4 par exemple ? Je pense qu'il faut aussi ne pas utiliser
certains traits
de CamlLight...

Pascal

PS: je ne suis pas inscrit sur une quelconque liste de diffusion caml,
donc merci
de poster d'eventuelles reponses a: Pascal.Poizat@irin.univ-nantes.fr.

-- 
Pascal Poizat : Pascal.Poizat@irin.univ-nantes.fr
http://www.sciences.univ-nantes.fr/info/perso/permanents/poizat/

"j'entends et j'oublie, je vois et je retiens, je fais et je comprends"





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: (*)CaML -> SML ?
  1998-05-05 13:06 (*)CaML -> SML ? Pascal Poizat
@ 1998-05-11 10:12 ` Daniel de Rauglaudre
  1998-05-12  1:42 ` (*)CaML -> SML ? / SML -> Caml ? Jacques GARRIGUE
  1 sibling, 0 replies; 4+ messages in thread
From: Daniel de Rauglaudre @ 1998-05-11 10:12 UTC (permalink / raw)
  To: Pascal Poizat; +Cc: caml-list

> Je me demandais s'il y avait un outil du style (*)CaML vers SML en
> passant
> par CaMLp4 par exemple ? Je pense qu'il faut aussi ne pas utiliser
> certains traits
> de CamlLight...

Par Camlp4, c'est pas possible. Il ne sait pas pretty-printer en
syntaxe SML. Il faudrait l'ajouter, et c'est du boulot. À moins que tu
ne veuilles parler de convertisseur SML -> Caml?

Là, c'est sûrement possible. Le problème, c'est que ce n'est pas
seulement syntaxique. Il y a des fonctions qui changent de nom ou
d'interface et il faut donc faire une analyse sémantique du programme.

Ou alors se contenter d'une transformation purement syntaxique, mais
est-ce que ce sera suffisant pour les utilisateurs?

--------------------------------------------------------------------------
 Daniel de RAUGLAUDRE

 Projet Cristal - INRIA Rocquencourt
 Tel: +33 (01) 39 63 53 51
 Email: daniel.de_rauglaudre@inria.fr
 Web: http://pauillac.inria.fr/~ddr/
--------------------------------------------------------------------------





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: (*)CaML -> SML ? / SML -> Caml ?
  1998-05-05 13:06 (*)CaML -> SML ? Pascal Poizat
  1998-05-11 10:12 ` Daniel de Rauglaudre
@ 1998-05-12  1:42 ` Jacques GARRIGUE
  1 sibling, 0 replies; 4+ messages in thread
From: Jacques GARRIGUE @ 1998-05-12  1:42 UTC (permalink / raw)
  To: Pascal.Poizat; +Cc: caml-list

[ English summary at the end ]

From: Pascal Poizat <Pascal.Poizat@irin.univ-nantes.fr>

> Je me demandais s'il y avait un outil du style (*)CaML vers SML en
> passant
> par CaMLp4 par exemple ? Je pense qu'il faut aussi ne pas utiliser
> certains traits
> de CamlLight...

Pour la partie purement syntaxique j'ai ecrit ce genre de chose il y a
deux ans, pour Caml Special Light. Je pense que ce serait relativement
facile a` adapter, puisque c'est un simple pretty printer ajouter par
dessus le compilateur CSL. Je traduis la syntaxe abstraite
directement, mais j'ai aussi besoin du typage pour manipuler les
enregistrements par exemple. Le resultat (syntaxique) est plutot joli
(meme si je prefere la version caml).

Mais je n'ai pas traite':

* les eqtype. En SML on distingue les types avec egalite' des types
  sans. Un casse-tete a` ajouter automatiquement.

* les annotations de types. Les variables n'ont pas le meme sens en
  SML.

Et comme le fait remarquer Daniel de Raglaudre, la difficulte' est du
cote' semantique. La bibliotheque standard de SML n'est pas la meme,
et les differences sont telles que je ne vois pas d'autre solution que
de soit ecrire pour SML, en utilisant ses bibliotheques (mais alors
pourquoi ne pas ecrire directement en SML), soit definir une
bibliotheque de compatibilite' qui reproduit l'ensemble de la
bibliotheque standard de Caml.

Exemples de points particulierement difficile a` traiter:

* L'egalite' n'est pas la meme en caml et en SML. Si a et b
  contiennent des structures mutables, alors a = b peut donner un
  resultat different dans les deux langages. Ca a des consequences
  partout.

* Les fonctions prenant deux listes de meme longueur dans la
  bibliotheque standard de SML (l'equivalent de List.combine ou
  List.iter2) n'echouent pas si les listes sont de longueur
  differente.

* Et une multitude d'autres petits choix a` faire dresser les cheveux
  sur la tete d'un camleur.


Si le but est d'utiliser les bibliotheques de SML, une autre approche
peut-etre plus simple serait de modifier directement le parser d'ocaml
(camlp4) pour qu'il accepte une syntaxe proche de celle de SML. Meme
chose, on ne peut pas obtenir une traduction parfaite, mais avec ca et
un minimum de modification du code source on pourrait obtenir une
facon rapide de traduire entre les deux langages. Le pretty-printer de
camlp4 permettrait d'obtenir du code caml en sortie. Il faudrait aussi
une bibliotheque de compatibilite'.

	Jacques

[ English ]

I wrote a translater from Caml to SML two years ago, but this was only
syntactic.

A real translater would be a very hard task since the two languages
differ both in their type systems and semantics.

If one wants to use an SML library in Caml, a more reasonable
approach would be to translate it in Caml. It would be nice to have
semi-automatic tools to do that.





^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: (*)CaML -> SML ?
@ 1998-05-14 15:51 Emmanuel CHAILLOUX
  0 siblings, 0 replies; 4+ messages in thread
From: Emmanuel CHAILLOUX @ 1998-05-14 15:51 UTC (permalink / raw)
  To: Pascal Poizat; +Cc: caml-list


> Je me demandais s'il y avait un outil du style (*)CaML vers SML en
> passant
> par CaMLp4 par exemple ? Je pense qu'il faut aussi ne pas utiliser
> certains traits
> de CamlLight...

On avait ecrit un outil pour traduire du caml-light 0.7 en SML 0.93. L'idee etait de developper en
caml-light et de pouvoir diffuser dans les differents dialectes ML. C'est cet outil qui a ete utilise
pour la bibliotheque MLgraph :  ftp://ftp.ens.fr/pub/unix/lang/MLgraph/version-2.1/

C'est un outil d'aide a` la traduction et non pas un compilateur de caml-light -> SML

   -  tout caml-light ne passe pas :
         streams,..

   -  il peut avoir des erreurs a` la compilation du fichier SML engendre :
           variables de type faible, operateurs polymorphes d'inegalite, types acceptant l'egalite

   -  et a` l'execution  :
           semantique differente de l'egalite,  ordre d'evaluation specifie en SML.


Il y a un papier des JFLA 96 dessus :

   Caml2sml : un outil d'aide a` la traduction de Caml-Light vers Sml/nj
   E. Chailloux, L. Kirsch et S. Lucas




Emmanuel Chailloux...



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~1998-05-18 13:08 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
1998-05-05 13:06 (*)CaML -> SML ? Pascal Poizat
1998-05-11 10:12 ` Daniel de Rauglaudre
1998-05-12  1:42 ` (*)CaML -> SML ? / SML -> Caml ? Jacques GARRIGUE
1998-05-14 15:51 (*)CaML -> SML ? Emmanuel CHAILLOUX

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).