|
|
Dernière mise à jour : 28 Avril 2010
Le Pascal GNU (GNU Pascal Compiler, GPC) est un compilateur 32 bits gratuit, disponible sur de nombreuses plate-formes, notamment DOS, Windows et Linux.
GPC est partiellement compatible avec Turbo Pascal mais il possède de nombreuses extensions, notamment dans le domaine scientifique. Il permet aussi d'intégrer des parties écrites dans d'autres langages tels que le C ou le Fortran.
Dans cette introduction, nous supposerons que vous avez une connaissance élémentaire de Turbo Pascal.
La plupart des distributions Linux ont un package GPC prêt à l'emploi, p. ex. Ubuntu
Vous pouvez aussi compiler GPC à partir des sources.
GRX est une librairie graphique très complète, utilisable aussi bien avec le C qu'avec le Pascal, et permettant entre autres d'émuler l'unité Graph du Turbo Pascal. Nous décrivons ici l'installation de la version 2.4.8
Pour installer GRX sous Linux :
tar -xvzf grx248.tar.gz
Ceci créera le répertoire grx248 où seront placés les fichiers sources.
make -f makefile.lnx
(ou makefile.x11 si vous voulez la version fonctionnant sous X)
Ceci créera les librairies libgrx20.a (ou libgrx20X.a) et libgrx20.so.2.4.8 (ou libgrx20X.so.2.4.8) dans le sous-répertoire lib/unix
gpc --print-file-name=units
Les programmes suivants peuvent être utiles :
RHIDE est un environnement de programmation intégré dans le style de Turbo Pascal. Il permet d'écrire les programmes et de lancer la compilation et l'éxécution.
Téléchargez le fichier binaire pour Linux et copiez-le dans un répertoire quelconque puis décompactez-le. Ceci créera un sous-répertoire dans lequel vous trouverez le script d'installation (en principe INSTALL.LINUX). En lançant ce script (par sh INSTALL.LINUX) vous installerez RHIDE dans /usr/local/bin.
UPX est un compacteur de programmes exécutables, très utile ici car les exécutables créés par GPC sont très volumineux !
Pour l'installer, décompactez l'archive et placez le fichier upx dans un répertoire accessible par le PATH, p. ex. /usr/bin
Une librairie permettant de créer des interfaces graphiques à l'aide des outils GTK. Pour l'installer, décompactez l'archive et placez les unités dans le répertoire des unités de GPC.
La documentation de GPC est au format Info. Pour la consulter, tapez :
info -f gpc
Dev+GNU Pascal est une version de GPC pour Windows, comprenant un environnement de développement intégré (IDE) et une bibliothèque graphique.
La version DOS de GPC fait partie du projet DJGPP. Ce logiciel est en quelque sorte un mini-système d'exploitation qui permet de "court-circuiter" le système 16 bits du DOS pour lui faire exécuter des programmes 32 bits issus du monde UNIX.
Nous avons placé sur le site de notre liste de messagerie TPMath une "mini-distribution" de DJGPP contenant GPC et GRX. (Voir section "Files", puis répertoire DJGPP). Vous devez être membre de la liste pour pouvoir télécharger le logiciel.
De nombreux autres programmes sont disponibles sur le site de DJGPP, en particulier :
A l'aide d'un éditeur de texte, saisissez l'exemple suivant (ou tout autre exemple de votre choix) dans un fichier test.pas :
program Test;
begin
Writeln('Bienvenue dans GNU Pascal !');
end.
|
puis compilez-le avec :
gpc test.pas -o test
(l'option -o sert à préciser le nom de l'exécutable)
Vous obtiendrez un "hénaurme" fichier exécutable test que vous pourrez lancer (par ./test) pour contempler l'incontournable message de bienvenue ;-)
Vous pouvez réduire la taille de l'exécutable avec l'option -s qui évite d'inclure l'information de débogage :
gpc test.pas -s -o test
Si vous avez installé UPX, vous pouvez encore compacter en faisant :
upx test
Tout comme Turbo Pascal, GPC peut créer des unités. Voici un exemple (usphere.pas) :
unit USphere;
{ Quelques calculs geometriques sur la sphere }
interface
function Surf_Sphere(R : Real) : Real;
{ Calcule la surface d'une sphere de rayon R }
function Vol_Sphere(R : Real) : Real;
{ Calcule le volume d'une sphere de rayon R }
implementation
const
C_4Pi = 4.0 * Pi; { Pi est une constante predefinie }
C_4PiSur3 = C_4Pi / 3.0;
function Surf_Sphere(R : Real) : Real;
begin
Surf_Sphere := C_4Pi * Sqr(R); { 4 * Pi * R^2 }
end;
function Vol_Sphere(R : Real) : Real;
begin
Vol_Sphere := C_4PiSur3 * R * Sqr(R); { 4/3 * Pi * R^3 }
end;
end.
|
On compile avec :
gpc -c usphere.pas
(l'option -c indique qu'il n'y a que la compilation, sans édition de liens).
On obtient deux fichiers : usphere.o et usphere.gpi
Soit le programme suivant (sphere.pas) :
program Sphere;
uses
USphere;
var
R, S, V : Real;
begin
Writeln;
Write('Rayon de la sphere : ');
Readln(R);
S := Surf_Sphere(R);
V := Vol_Sphere(R);
Writeln;
Writeln('Surface : ', S:10:4);
Writeln('Volume : ', V:10:4);
end.
|
On compile avec :
gpc sphere.pas --automake -o sphere
On obtient ainsi le programme exécutable, sphere, que l'on peut lancer.
L'option --automake (notez les deux tirets) signifie qu'il faut recompiler les unités lorsqu'elles ont été modifiées.
Pour automatiser toutes ces opérations, on peut faire un script shell, par exemple :
gpc $1.pas -s --automake -o $1 upx $1 |
Ce script étant sauvegardé dans un fichier, p. ex. gp, il suffira de faire :
gp prog
pour compiler le programme prog.pas
Si vous avez installé la librairie GRX, vous pouvez émuler l'unité Graph de Turbo Pascal en insérant la clause uses Graph dans vos programmes.
Vous pouvez dès lors compiler vos programmes avec une instruction du type :
(remplacer lvga par lX11 pour utiliser la version fonctionnant sous X)
GNU Pascal est un logiciel très puissant mais difficile à maîtriser.
Nous avons exposé son installation et donné quelques exemples d'utilisation. Nous verrons prochainement les extensions scientifiques de GNU Pascal.
|
|