From mboxrd@z Thu Jan 1 00:00:00 1970 Received: by margaux.inria.fr, Thu, 22 Oct 92 12:00:07 +0100 Date: Thu, 22 Oct 92 08:36:41 +0100 From: mariano@soleil.decnet.citilille.fr Message-Id: <9209300722.AA26984@concorde.inria.fr> To: @camlist@inria.fr Sender: weis@margaux A quoi sert CAML??? ******************* Je repose ma question sur l'utilite de CAML(light) mais de facon plus directe, je n'ai sans doute pas ete assez clair... choisissez parmi les questions suivantes celle qui vous interpelle le plus! A) Du point de vue UTILISATEUR ("quelconque",scientifique ou non) (et j'insiste sur l'aspect 'utilisation') a quoi servent les langages de la famille ML? B) les CAMLs peuvent ils remplacer le C (par ex.) pour developper? B1) dans (tous les)(la plupart des)(en aucun) cas ? B2) y a-t-on interet ? C) peut on envisager raisonnablement une application complexe (de haut niveau, style calcul formel, syst. exp. etc) utilisant toutes les ressources d'une machine (utilisation graphique, gestion souris, gestion de fichiers...) ecrite en CAML(light)? ************* Autre sujet : Le livre "Concepts et outils de programmation style fonctionnel style imperatif CAML et ADA" (Editions InterEditions) * Peut on intervenir ici a propos de ce livre? (y a t il un public interesse par ce sujet?) * Notamment, une comparaison entre ce livre et "Structure et interpretation des programmes informatiques" aux meme editions me semble interessante... * Je suppose que les auteurs sont a` l'ecoute, me trompe-je? Doit-on s'adresser directement a` eux? et ou? P.S. Mes reponses a d'eventuels correspondants risquent de se faire attendre, je suis en effet sous les drapeaux actuellement et je profite de mes permissions pour repondre...toutes mes excuses... Georges. [Note du mode'rateur: Mes re'ponses a` vos questions: A) A programmer vite et bien. B) La re'ponse est OUI. B1) Dans tous les cas ou` il s'agit d'e'crire des programmes complexes, en particulier des programmes qui font de la manipulation symbolique. Egalement dans les cas ou` la gestion me'moire a` la main serait un casse-te^te source d'erreurs tre`s difficiles a` e'radiquer. En revanche, pour e'crire des programmes de tre`s bas niveau, tre`s proches du syste`me d'exploitation, comme un pilote d'imprimante (et plus ge'ne'ralement un pilote de pe'riphe'rique (en anglais device driver)) restez en C. Il faut aussi remarquer que l'interfac,age de C et de CAML est possible, voir bien de'crit (Caml Light). Il est donc possible d'e'crire certaines parties de votre logiciel directement en C. B2) On y a inte're^t pour e'crire des programmes ayant de grandes chances de marcher dans tous les cas. Le typage fort et le filtrage (pattern-matching) sont des avantages de'cisifs pour e'crire du code lisible et correct. C) Il n'y a aucun proble`me a` ge'rer une souris, a` faire du graphique et a` ge'rer des fichiers en CAML. On a me^me un avantage de'cisif avec les entre'es-sorties structure'es de CAML qui permettent d'e'crire n'importe quelle VALEUR CAML sur disque puis de la relire en pre'servant sa structure (partage y compris). Une application de calcul formel constitue e'videmment une application typique de CAML. On pourrait facilement y faire de la re'e'criture, comple`ter des syste`mes de re`gles (KB est notre benchmark favori!). Nous ne l'avons jamais fait parceque nous n'avons pas la compe'tence dans l'algorithmique utilise'e en calcul formel. Mais je suis persuade' que ce genre d'application serait tre`s facilement et tre`s proprement e'crite en CAML (il y faut absolument un GC, un me'ta-langage, des traitements formels comme de la re'e'criture, tous domaines ou` CAML excelle). D'ailleurs, la bibliothe`que de calcul des grands nombres (rationnels en pre'cision arbitraire), de'ja` e'crite en CAML, est un outil de base pour ce genre de logiciels, qui illustre tre`s bien le point B): cette bibliothe`que est e'crite en CAML (6000 lignes) pour tout ce qui concerne la gestion des rationnels (type ratio), des grands entiers (type big_int), des grands nombres (type num) et de leurs ope'rations associe'es. En effet les algorithmes employe's sont de haut niveau et CAML permet bien d'exprimer les optimisations utilise'es. En revanche la couche basse ope`re en place sur des entiers non signe's stocke's dans des chai^nes de caracte`res (par exemple l'addition de ces nombres stocke son re'sultat dans le premier argument!). Cette couche est e'crite dans un langage de bas niveau: en C par de'faut pour la portabilite', mais pour la plupart des machines directement en assembleur (on gagne un facteur 4). On be'ne'ficie ainsi d'une grande efficacite', a` la fois dans l'expression d'optimisations complexes (au niveau CAML) et dans les calculs bruts (au niveau assembleur). ***************** Autre sujet: "Concepts et outils de programmation ..." * On peut intervenir (mais rester poli!). Nous sommes tous plus ou moins interesse's car plus ou moins professeurs aussi. * Comparez, comparez ... * Vous ne vous trompe-je pas. On peut s'addresser directement a` eux s'il s'agit de les insulter ou dans cette tribune pour les fe'liciter ou apporter des critiques constructives. Leurs adresses e'lectroniques sont donzeau@margaux.inria.fr et hardin@margaux.inria.fr. Pierre Weis ---------------------------------------------------------------------------- Formel Project INRIA, BP 105, F-78153 Le Chesnay Cedex (France) E-mail: Pierre.Weis@inria.fr Telephone: +33 1 39 63 55 98 ---------------------------------------------------------------------------- ]