Saisir, exécuter, compiler un programme en Pascal
Un article de Mangue.org, l'encyclopéde libre.
Dans ce deuxième article, nous allons apprendre à saisir, compiler et exécuter le programme présenté dans le cours de présentation du langage.
Turbo Pascal
Vous avez de la chance, contrairement à ceux qui utlisent le FreePascal ou le compilateur Pascal GNU, vous disposez d'un environnement de développement intégré...
Cet environnement de développement intégré (EDI) vous permet d'utiliser la même interface pour écrire, débugguer et compiler un programme. De cette façon, vous aurez moins à jongler entre plusieurs programmes ou à entrer des commandes incompréhensibles pour lancer le déboggage.
Bien, pour commencer à programmer avec le Turbo Pascal, il vous suffit de lancer le programme TURBO.EXE du répertoire où vous avez installé le logiciel. Dès que vous l'aurez fait, vous vous retrouverez avec le mythique environnement intégré de Borland.
- la fenêtre d'édition : C'est sans aucun doute la première chose que vous avez vu puisqu'elle occupe presque tout l'écran ;)Cette fenêtre vous permet de saisir et de modifier le code source de vos programmes.
- la barre de menu : C'est ici que vous retrouverez toutes les commandes que vous utiliserez...
- la barre des raccourcis : En bas de l'écran, vous voyez une barre qui comporte quelques indication
Pour la fenêtre dédition, vous voyez en (1) un indicateur fort pratique qui s'affiche dès que vous avez modifié le code source depuis votre dernière sauvegarde et en (2)les coordonnées du curseur, en effet vous le voyez clignoter sur la sixième ligne, cinquième colonne.
| Remarque |
| Vous voyez au fur et à mesure que vous tappez votre code source que des couleurs apparraissent ! Elles vous permettront de vous repérer plus facilement dans vos programmes, en effet vous verrez les commentaires en gris, les mots réservés en blanc, en jaune tout le reste (identificateurs etc.) et finalement en vert les appels à des instructions en assembleur (absent de cette introduction au Pascal) Ce sont les couleurs par défaut choisies par Borland, vous pourrez biensûr les modifier :) |
Nous allons maintenant reprendre notre premier programme du cours précédent :
program Premier_Programme;
begin
(* debut du programme *)
write('Vive le Monde de la Programmation');
end.
Après avoir recopié le code source, vous devez voir quelque chose de semblable à la capture d'écran précédente si vous utilisez Turbo Pascal, ou une autre coloration si vous avez modifié les options.
Il faut désormais préparer le programme pour l'exécution ; nous allons commencer par le compiler. Pour ça rendez vous dans le menu COMPILE et sélectionnez COMPILE ;o]
Là deux situations peuvent se présenter... Soit votre programme a été compilé en mémoire, soit il l'a été sur le disque. Nous partirons du principe qu'un exécutable a bien été créé sur le disque dur, il portera le nom de votre programme (donc ici NONAME00 car on ne l'a pas enregistré) suivi de l'extension .EXE
Vous trouverez votre création dans le répertoire où se situe le compilateur (donc typiquement C:\TP\)
Une fois ce programme localisé il vous suffit de l'exécuter, et ça que vous soyez sous Dos ou Windows. Vous verez que tout se déroule comme nous le pensions.
| Remarque |
| Si vous êtes sous Windows et que vous n'arrivez pas à voir apparaître le résultat c'est tout simplement parce que l'exécution du programme ne provoque pas de pause, ce qui implique que la fenêtre où notre texte a été affiché se ferme aussitôt.Pour contourner ce problème passez en mode MS-DOS ou bien ouvrez une fenêtre console. |
Evidemment à force d'utiliser le Turbo Pascal vous irez plus vite pour utiliser vos programmes.Dans ce cas il était inutile de le compiler car il existe une commande RUN dans le menu RUN. Vous auriez tout aussi bien pu compiler le programme en mémoire et l'exécuter ensuite (ce que fait le compilateur si vous choisissez la commande RUN)
Nous n'utiliserons pas cette méthode ici mais il est également envisageable de compiler un programme directement depuis la ligne de commande. Pour ça il faut utiliser TPC.EXE (Turbo Pascal Compiler), ce qui peut être utile si on veut automatiser la compilation de plusieurs programmes.
FreePascal
Contrairement à ceux qui utilisent le Turbo Pascal (ou sa version Windows), vous ne disposez pas d'environnement de développement intégré ; vous devrez donc utiliser un éditeur de texte quelconque en parrallèle (comme Emacs qui est présenté sur notre site)
| Danger |
| Attention à n'utiliser que des éditeurs qui enregistrent vos textes en texte brut (sans aucune mise en forme donc!)Si vous outrepassiez cette règle le compilateur serait incapable d'exploiter vos codes sources. |
Pour la suite je considère que le code source de votre programme est enregistré dans un fichier nommé programme.pas
Je prends aussi comme système d'exploitation Linux car désormais le Turbo Pascal est disponible gratuitement sous Windows. Mais le FreePascal existe aussi sous Dos évidemment ;)
Vous l'avez deviné, il faut passer en mode console pour compiler des programmes (même système que gcc donc). Voici un exemple de ce que vous pourriez trouver :
[bgw@progworld Pascal]# ls -lF
total 4
-rw-rw-rw- 1 bgw bgw 110 jui 23 22:01 programme.pas
[bgw@progworld Pascal]# more programme.pas
program Premier_Programme;
begin
(* debut du programme *)
write ('Vive le Monde de la Programmation');
end.
[bgw@progworld Pascal]# ppc386 programme.pas
Free Pascal Compiler version 0.99.14 [2000/01/26] for i386
Copyright (c) 1993-2000 by Florian Klaempfl
Target OS: Linux for i386
Compiling programme.pas
Assembling premier_programme
Linking programme
6 Lines compiled, 1.0 sec
[bgw@progworld Pascal]# ls -lF
total 48
-rwxrwxrwx 1 bgw bgw 40176 jui 23 22:09 programme*
-rw-rw-rw- 1 bgw bgw 1240 jui 23 22:09 programme.o
-rw-rw-rw- 1 bgw bgw 110 jui 23 22:01 programme.pas
[bgw@progworld Pascal]# ./programme
Vive le Monde de la Programmation[bgw@progworld Pascal]#
ls et more sont des commandes usuelles, si vous ne savez pas comment les utiliser lisez simplement les pages man.ppc386 est la commande permettant d'invoquer notre compilateur, elle admet pour premier paramètre le nom du programme que l'on désire compiler justement ;o)
ensuite ./programme permet simplement d'exécuter l'application créée dans le répertoire courant.
Vous constatez qu'un fichier programme.o a également été créé, celui-ci est simplement le programme compilé... Pourquoi n'est-il pas exécutable me direz vous ?
Et bien ce fichier ne contient que votre code transformé en langage machine et rien d'autre... Les appels aux fonctions comme write restent tels quels ; ensuite le compilateur doit lier les fichiers du programme entre eux (il peut y avoir plusieurs fichiers à compiler pour créer votre application comme nous le verrons bientôt).
Ainsi le fichier programme ne contient que du code machine exécutable par votre processeur. Si vous voulez plus de détails là dessus demandez donc sur notre forum comme toujours.
| Astuce |
Pensez à lire les pages man du FreePascal (man ppc386) vous y apprendrez bien des choses
|
Vous avez certainement remarqué la taille de l'application une fois créée. Elle est impressionante pour un processus qui ne s'occupe que d'afficher quelques caractères à l'écran.
Ceci peut être expliqué par la compilation elle même... En effet le FreePascal introduit beaucoup de tests de validité à l'intérieur des programmes pour prévenir une éventuelle erreur ; ce qui se caractérise forcément par l'augmentation de la taille du programme mais également par une plus grande "robustesse"
Les autres compilateurs
Pour le Turbo Pascal Windows la marche à suivre est la même que pour le Turbo Pascal que nous avons vu plus haut à ceci près que vous devez utiliser l'unité WinCrt comme dans l'exemple suivant :
program Premier_Programme;
uses WinCrt; (* pour utiliser les programmes DOS *)
begin
(* debut du programme *)
write ('Vive le Monde de la Programmation');
end.
Nous verrons plus en détail à quoi correspond le mot clé uses, pour l'instant ce sera la seule différence que vous trouverez entre les versions Dos et Windows du compilateur de Borland.
Si vous utilisez le Pascal GNU (gpc) vous trouverez facilement des liens internet ainsi que des listes de discution à ce sujet. Mais en dehors de la compilation qui variera tout ce que vous verrez ici sera compatible, si ce n'est pas le cas il ne vous reste plus qu'à protester sur notre forum.


