Abstraction Concrète : Application CamlCalc


CamlCalc est un tableur en mode texte pour MSDOS. Il s'agit d'une application aux objectifs essentiellement pédagogiques. Deux thèmes sont abordés,

Modules appelés par CamlCalc

Commandes du tableur

Valeurs et formules

  • module eval

    Le module "editable" fait appel au module "eval" qui se est chargé de l'évaluation du contenu des cellules. Il doit, pour cela, reconnaître différents types de représentations de nombres et être capable d'interpréter des formules de calcul. L'évaluation des formules est réalisé dans le contexte des valeurs des cellules du tableau.

    Fonctions du module principal

    Mise en œuvre de l'application

  • Générateur de l'application

    La procédure de génération de l’application a été conçue pour fonctionner avec les chemins d’accès aux fichiers, mis en place par défaut, lors de l’installation initiale. Le lecteur devra adapter ces chemins en fonction des modifications qu’il aura pu apporter à l’installation initiale. Ici, le répertoire racine de l’installation est considéré comme étant le répertoire maître lors de la génération de l’application.

    Installation de CamlCalc

    Une version de démonstration du tableur, est installée dans le sous répertoire intitulé _atelier du répertoire racine de l’installation de l’atelier de programmation.

    Le tableur fonctionne en mode texte, dans l'environnement MSDOS, avec Caml-Light version 0.7.
    CamlCalc ne fonctionne pas avec Caml pour Windows.
    CamlCalc ne fonctionne pas avec Caml 0.71 dans l'environnement MSDOS.

    Pour tester CamlCalc,
    1. lancer le système interactif de Caml version 0.7, dans l'environnement MSDOS, à partir du répertoire editeur du répertoire _atelier
    2. sous le système interactif Caml, taper la commande :
      include "camlcalc";;
    Les fichiers suivants doivent être placés dans le répertoire indiqué par la variable d'environnement CAMLLIB :

    Exécution de l'application

    Depuis le système interactif, le tableur est exécuté à partir de la séquence de commandes suivante :
    1. load_object "camlcalc";;
      Chargement du code du programme compilé du tableur.
    2. #open "camlcalc";;
      Ouverture du module camlcalc.
    3. tableur "fichier"
    Le paramètre "fichier" est une chaîne de caractères désignant le nom du fichier appelé par le tableur. Si ce fichier n’existe pas dans le répertoire courant, un nouveau fichier est créé.

    Le chargeur : camlcalc.ml

    Dans le répertoire racine de l’installation de l’atelier de programmation le répertoire intitulé _dossier contient un dossier de module nommé tableur dans lequel se trouve le chargeur camlcalc.ml. Ce chargeur est un programme uniquement destiné à charger le programme du tableur à partir du système interactif, en automatisant la séquence de commandes d’exécution du tableur.
    (* CamlCalc.ml *)
    
    load_object "camlcalc";;
    #open "camlcalc";;
    
    (* fin du programme *)
    

    Appel du tableur depuis le système interactif

    Avec le programme précédent, le tableur est appelé au moyen de la commande include "camlcalc";; qui charge et initialise l’éditeur.
    L’exemple suivant montre une session d’utilisation du tableur depuis le système interactif. Au cours de la session, l’opérateur lance, en premier, le chargeur camlcalc.ml. Ensuite, avec le tableur CamlCalc, il appelle un fichier préalablement saisi et intitulé "essai.tab".
    #include "camlcalc";;
    
    CamlCalc version 0.1 est chargé
            tableur "fichier"
    
    - : unit = ()
    - : unit = ()
    
    Ensuite l’opérateur peut directement lancer l’exécution du tableur (comme c’est le cas de notre exemple, ici, avec le fichier par défaut "essai.tab").
    #tableur "essai.tab" ;;

    Dessin d’écran du tableur en mode texte CamlCalc, après exécution de la commande précédente : expressions et valeurs saisies.

    
    +-essai.tab--------------------------------------------------------------------+
    +---------------------------------------------------------------modifie : non--+
    ¦ L0C0       0           1           2           3           4           5     ¦
    ¦    0                                                                         ¦
    ¦    1 NUMERO      VARIABLE    VALEUR                                          ¦
    ¦    2  1          Alpha       56                                              ¦
    ¦    3  2          Beta        123.7852                                        ¦
    ¦    4  3          Gamma       184.25e31                                       ¦
    ¦    5  4          Delta       (Pow(7,14))                                     ¦
    ¦    6  5          Omega       (Pow(7,20))                                     ¦
    ¦    7  6          Teta        (Pow(7,-20))                                    ¦
    ¦    8  7          Epsilon     (Sin(0.6))                                      ¦
    ¦    9  8          Mu          (Mul(Ref(-1,0),Ref(-2,0)))                      ¦
    ¦   10  9          Rho         185.38E4                                        ¦
    ¦   11  A          Eta         (Exp(3))                                        ¦
    ¦   12  B          Pi          (Exp(7))                                        ¦
    ¦   13  C          Phy         (Add(5,85.5))                                   ¦
    ¦   14  D          Psy         (Log(123))                                      ¦
    ¦   15  E          Zeta        (Add(Ref(-2,0),Ref(-5,0)))                      ¦
    ¦   16  F          Sigma       (Add(Add(5,8),54))                              ¦
    ¦   17                                                                         ¦
    ¦   18                                                                         ¦
    +------------------------------------------------------------------------------+
    +-Calc Caml > [Esc] Quitter Enregistrer Renommer---------------------[F1] aide-+
    

    Dessin d’écran du tableur en mode texte CamlCalc, après saisie des valeurs et expressions, recalcul et réaffichage : valeurs affichées.

    
    +-essai.tab--------------------------------------------------------------------+
    +---------------------------------------------------------------modifie : non--+
    ¦ L0C0       0           1           2           3           4           5     ¦
    ¦    0                                                                         ¦
    ¦    1 NUMERO      VARIABLE    VALEUR                                          ¦
    ¦    2  1          Alpha                 56                                    ¦
    ¦    3  2          Beta            123.7852                                    ¦
    ¦    4  3          Gamma         1.8425e+33                                    ¦
    ¦    5  4          Delta       678223072849                                    ¦
    ¦    6  5          Omega          7.97e+167                                    ¦
    ¦    7  6          Teta            1.25e-17                                    ¦
    ¦    8  7          Epsilon     0.5646424733                                    ¦
    ¦    9  8          Mu              7.07e-18                                    ¦
    ¦   10  9          Rho              1853800                                    ¦
    ¦   11  A          Eta         20.085536923                                    ¦
    ¦   12  B          Pi          1096.6331584                                    ¦
    ¦   13  C          Phy                 40.5                                    ¦
    ¦   14  D          Psy         4.8121843553                                    ¦
    ¦   15  E          Zeta           1853840.5                                    ¦
    ¦   16  F          Sigma           2509.615                                    ¦
    ¦   17                                                                         ¦
    ¦   18                                                                         ¦
    +------------------------------------------------------------------------------+
    +-Calc Caml > [Esc] Quitter Enregistrer Renommer---------------------[F1] aide-+
    

    Image d'écran du tableur en mode texte CamlCalc, après saisie des valeurs et expressions, recalcul et réaffichage : valeurs affichées.