ADA et emacs

Un petit aide-mémoire pour faire tourner une procédure ADA sous emacs avec ada-mode.

Il faut au préalable installer gnat :

Bash
# apt-get install gnat

Voici par exemple une procédure correspondant à l'exercice 14 d'ALGO1 d'INFO1 du poly de M. JFR...

  • le fichier exo14.adb :
    Ada
    with  ada.Text_IO,ada.Integer_Text_IO,ada.Float_Text_IO; 
    use  ada.Text_IO,ada.Float_Text_IO;
     
    procedure  Exo14 is 
       Montant,Tauxremise : Float;
    begin 
       put("Quel est le montant initial ?");
       Get(Montant);
       Tauxremise := 0.05;
       if Montant > 300.0
             then Montant := Montant * (1.0 - Tauxremise);
       end  if; 
       Put("Donne moi : ");
       Put(Montant,4,2,0);
    end;
  • On tape ensuite C-c C-v pour compiler. Voici ce qui s'est passé, affiché dans le mini-tampon:
    Bash
    -*- mode: compilation; default-directory: "~/IUT/INFO1/ADA/" -*-
    Compilation started at Sun Sep 16 20:01:46
     
    gnatmake -u -c -gnatc -g ~/IUT/INFO1/ADA/exo14.adb -cargs -gnatq -gnatQ
    gcc-4.6 -c -I~/IUT/INFO1/ADA/ -gnatc -g -gnatq -gnatQ -I- ~/IUT/INFO1/ADA/exo14.adb
     
    Compilation finished at Sun Sep 16 20:01:46
  • Il reste à construire avec C-c RET :
    Bash
    -*- mode: compilation; default-directory: "~/IUT/INFO1/ADA/" -*-
    Compilation started at Sun Sep 16 20:02:59
     
    gnatmake -o exo14 exo14 -g -cargs -gnatq -gnatQ -bargs  -largs 
     
     
    gcc-4.6 -c -g -gnatq -gnatQ exo14.adb
    gnatbind -x exo14.ali
    gnatlink exo14.ali -o exo14 -g
     
    Compilation finished at Sun Sep 16 20:02:59
  • puis à lancer l'exécutable ainsi fabriqué avec C-c C-q r :
    Bash
    Quel est le montant initial ? 123123.10
    Donne moi : 116966.95
     
    Process run finished