gilles.hunault@univ-angers.fr

   galg - Gestion d'ALGorithmes


F.A.Q. (Foire Aux Questions)

1.Faut-il utiliser les interfaces graphiques ?
2.Pourquoi ne pas avoir fait d'exécuteur d'algorithmes ?
3.A quoi sert le manuel du programmeur ?
4.Pourquoi galg ne traduit pas les en-têtes de sous-programmes ?
5.Pourquoi galg ne type pas automatiquement les variables ?
6.Comment analyser automatiquement toute une liste de fichiers-algorithmes ?
7.Comment utiliser galg à la fac (je suis étudiant[e] mais je n'ai pas de compte Unix) ?
8.Comment installer et utiliser galg sous Dos ?
9.Comment installer et utiliser galg sous Unix ?
10.Quelle est la dernière version stable de galg ?
11.Mon binome n'a pas la même traduction que moi ?
12.Galg dit que toutes les lignes sont fausses, même les commentaires ?
13.Je connais déjà l'algorithmique. Avez-vous des exemples d'algorithmes valides en Galg ?
14.Je sais programmer. Avez-vous des exemples d'algorithmes pour C, C++, Java, Pascal, Perl, Rexx etc. ?

retour page principale de galg  Retour à la page principale de Galg  

 

1. Faut-il utiliser les interfaces graphiques ?

Non, ce n'est pas obligatoire car l'utilisation de galg en ligne de commande est suffisante... C'est seulement conseillé car plus confortable au niveau de la frappe du texte des algorithmes. Il y a plusieurs interfaces graphiques parce que ce fut un projet en licence informatique que d'écrire des interfaces pour galg. Ces interfaces permettent d'éditer les algorithmes (ce qui évite les fautes de frappe et notamment les oublis de commentaire en fin de structure), de les analyser et des les traduire, parfois de les éxécuter. Seule l'interface en Tcl/Tk est vraiment opérationnelle. Ces interfaces ne sont pas obligatoires, la ligne de commande est largement suffisante. Elles fournissent par contre un bon confort d'édition et d'aide au développement. De plus, elles sont disponibles pour les systèmes Windows et Linux.
retour haut de document  Retour en haut du document 

2. Pourquoi ne pas avoir fait d'exécuteur d'algorithmes ?

Il existe déjà des langages algorithmiques avec traducteur et exécuteur, comme par exemple LAT, disponible à l'adresse

       http://cipcinsa.insa-lyon.fr/info/lat/

galg procéde différemment : il traduit dans un langage donné. L'exécution se fait dans le langage choisi. Cela me parait plus conforme à la notion d'exécution qui est forcément (et malheureusement) liée à un langage et à une machine.

retour haut de document  Retour en haut du document 

3. A quoi sert le manuel du programmeur ?

A comprendre comment galg fonctionne en interne, à faciliter la lecture du code source. De plus cela aux étudiants qui travaillent sur galg de comprendre rapidement comment le programme est organisé (il y une vingtaine de fichiers et en gros 10 000 lignes de programmes dont de nombreux commentaires).
retour haut de document  Retour en haut du document 

4. Pourquoi galg ne traduit pas les en-têtes de sous-programmes ?

Parce que c'est trés délicat à cause du choix de ce qui est variable globale, locale, etc. J'ai peur qu'en forçant trop la traduction on ait moins de liberté d'écriture des algorithmes. La syntaxe algorithmique décrite dans le manuel d'Algorithmiques raisonnées est un peu "lourde" à traduire. Mais en la remaniant, galg devrait traduire les sous-programmes dans une nouvelle version. Donc pour l'instant, il suffit de mettre les lignes comme
module...
debut de module
fin de module
en commentaires et galg ne se plaint plus !
retour haut de document  Retour en haut du document 

5. Pourquoi galg ne type pas automatiquement les variables ?

Par ce que c'est impossible sans aide extérieure. Par exemple
    écrire N
sans autre indication ne dit pas si N est entier, ou réel ou ... Comment typer alors ?

D'autre part, de nombreux langages ne typent pas. Forcer à typer est donc inutile. Par contre, une solution envisageable (qui est à l'étude) serait d'adjoindre un fichier de typage suffisamment général pour qu'il puisse servir à la traduction de tous les langages typés explicitement à déclaration obligatoire et en particulier pour le C, fichier requis seulement pour ces langages...

retour haut de document  Retour en haut du document 

6. Comment analyser automatiquement toute une liste de fichiers-algorithmes ?

S'il s'agit juste de les analyser, il suffit de mettre dans un script (.bat sous Dos, .sh sous Unix) les lignes d'analyses, soit par exemple
    galg -a prog.alg
    galg -a sousProg1.alg
    galg -a sousProg2.alg
Si par contre il s'agit de rendre un document qui contient tous les algorithmes et les sous-algorithmes analysés par galg, il vaut mieux utiliser le programme galgml.pl qui automatise la recopie des fichiers. Par exemple pour les fichiers précédents, il effectue
    l'analyse  de prog.alg
    la recopie de prog.lst dans galgm.lst
    la recopie de prog.lvm dans galgm.lst

    l'analyse  de sousProg1.alg
    la recopie de sousProg1.lst dans galgm.lst
    la recopie de sousProg1.lvm dans galgm.lst

    l'analyse  de sousProg2.alg
    la recopie de sousProg2.lst dans galgm.lst
    la recopie de sousProg2.lvm dans galgm.lst
retour haut de document  Retour en haut du document 

7. Comment utiliser galg à la fac (je suis étudiant[e] mais je n'ai pas de compte Unix) ?

Sous Windows, il suffit d'ouvrir une session Dos, de se mettre dans le répertoire où est écrit le fichier algorithme (par exemple et c'est conseilé) dans D:\Galg\ et et de taper K:\Coursgh\Galg\galg -a suivi du nom de votre fichier algorithme.
retour haut de document  Retour en haut du document 

8. Comment installer et utiliser galg sous Dos ?

Installation
Installez d'abord perl (utilisez par exemple ActivePerl disponible à l'adresse http://aspn.activestate.com/ASPN/Perl/).

Créez ensuite un répertoire pour galg, par exemple et c'est conseilé I:\Galg\ ou D:\Galg\ (quitte à utiliser une commande subst pour définir le disque I:).

Décompressez-y alors l'archive galg.zip avec Winzip ou pkunzip ou un logiciel équivalent puis créez le fichier galg.bat dans ce meme répertoire avec edit ou notepad ou... (à condition de sauvegarder en mode texte) et mettez-y le texte suivant :

      @echo off
      set PERL_MACROS=I:\Galg\
      perl I:\Galg\galg.pl %1 %2 %3 %4 %5

Modifiez en conséquence le nom de l'unité et le chemin du répertoire dans les lignes 2 et 3 de ce fichier si vous n'utilisez pas I:\Galg.

Vérifiez alors que galg fonctionne en tapant seulement galg.bat dans une session Dos une fois que vous êtes dans le répertoire d'installation (on ouvre une session Dos avec la séquence d'actions Démarrer / Programme / Invite de commandes et on la ferme avec exit).

Utilisation
Ouvrez une session Dos, mettez-vous dans le répertoire où est écrit le fichier algorithme et tapez U:\Xxxx\galg -a suivi du nom de votre fichier algorithme où U:\Xxxx désigne l'unité et le répertoire où vous avez installé galg, soit I:\Galg\galg -a ... si vous avez suivi la procédure d'installation conseillée.
retour haut de document  Retour en haut du document 

9. Comment installer et utiliser galg sous Unix ?

Installation
Installez d'abord perl si ce n'est pas déjà fait à partir du site officiel à l'adresse http://www.cpan.org/.

Dans une fenetre de terminal, créez un répertoire que vous nommez par exemple ~/Galg allez dans ce répertoire avec la commande cd ~/Galg , recopiez-y l'archive galg.zip, décompressez-la avec unzip galg.zip , puis écrivez dans ce répertoire le fichier galg qui doit contenir

     export PERL_MACROS=~/Galg
     perl ~/Galg/galg.pl $*

Modifiez en conséquence le nom du répertoire dans les lignes 1 et 2 de ce fichier si vous n'utilisez pas ~/Galg.

N'oubliez pas de rendre votre fichier éxécutable en tapant chmod +x galg. Vérifiez alors que galg fonctionne en tapant seulement galg. Attention : si le répertoire courant n'est pas dans le PATH, il faut écrire ./galg pour exécuter le script...

Utilisation
Dans une fenetre de terminal, allez dans le répertoire où est écrit le fichier algorithme puis tapez CHEMIN/galg -a suivi du nom de votre fichier algorithme où CHEMIN est le répertoire d'installation , soit la commande ~/Galg\galg -a ... si vous avez suivi la procédure d'installation conseillée.
retour haut de document  Retour en haut du document 

10. Quell est la dernière version stable de galg ?

C'est la version 2.93. On se méfiera des versions inférieures à la version 2.9 qui ne traduisaient pas toujours correctement certaines opérations sur fichiers en perl.
retour haut de document  Retour en haut du document 

11. Mon binome n'a pas la même traduction que moi !

Si votre binome a exactement le même fichier algorithme que vous mais que galg n'en donne pas la même analyse ni la même version, il s'agit sans doute d'un problème de version de galg. L'un de vous deux doit avoir une version plus récente de galg que l'autre. La réponse à la question précédente indique la version courante de galg, c'est à dire la seule qui fait foi...
retour haut de document  Retour en haut du document 

12. Galg dit que toutes les lignes sont fausses, même les commentaires !

Pas de panique !! C'est sans doute l'erreur 049 à chaque fois et il s'agit certainement d'un problème de conversion de fichier. Par exemple si vous utilisez galg sous Unix et que votre algorithme est un fichier Windows il faut le convertir avec la commande dos2unix. De la même façon, si vous utilisez galg sous Dos avec un fichier Unix, il faut le convertir avec la commande unix2dos. SI vous récupérez vos fichiers sous Unix à partir d'un fichier zip créé sous Dos, il faut utiliser l'option -a de la commande unzip.
retour haut de document  Retour en haut du document 

13. Je connais déjà l'algorithmique. Avez-vous des exemples d'algorithmes valides en Galg ?

Bien sur. Vous trouverez sur la page galg_xmp1.htm une dizaine d'exemples valides. L'interface en Tcl/Tk peut même les recréer à la demande, via le menu "Exemples". Cela devrait vous donner un modèle de la syntaxe à respecter scrupuleusement..
retour haut de document  Retour en haut du document 

14. Je sais programmer. Avez-vous des exemples d'algorithmes pour C, C++, Java, Pascal, Perl, Rexx etc. ?

Oui. Vous trouverez sur la page galg_xmp2.htm une dizaine d'exemples valides. Cela devrait vous donner une idée ce que fait et de ce que ne fait pas Galg.
retour haut de document  Retour en haut du document 


retour haut de document  Retour en haut du document     retour page principale de galg  Retour à la page principale de Galg