gilles.hunault@univ-angers.fr galg - Gestion d'ALGorithmes
Retour en haut du document Retour à la page principale de Galg
F.A.Q. (Foire Aux Questions)
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.
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.
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).
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 moduleen commentaires et galg ne se plaint plus !
5. Pourquoi galg ne type pas automatiquement les variables ?
Par ce que c'est impossible sans aide extérieure. Par exemple
écrire Nsans 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...
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.algSi 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.lst7. 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.
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 %5Modifiez 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.
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.
10. Quelle 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.
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...
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.
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..
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.