Langage Pascal/Structure d’un programme

Début de la boite de navigation du chapitre
Structure d’un programme
Icône de la faculté
Chapitre no 9
Leçon : Langage Pascal
Chap. préc. :Définition de fonctions
fin de la boite de navigation du chapitre
En raison de limitations techniques, la typographie souhaitable du titre, « Langage Pascal : Structure d’un programme
Langage Pascal/Structure d’un programme
 », n'a pu être restituée correctement ci-dessus.

Rappel sur les blocs d'instructions

modifier

Une instruction séquence d'instructions regroupe plusieurs instructions en une seule. Celle-ci commence par le mot clé begin et se termine par end. Le ; sert à séparer deux instructions. Voici un exemple :

  begin
    temp := x  ;
    x := y     ;
    y := temp
  end;

Catégorie de fichier

modifier

Un fichier source Pascal débute toujours par un mot clé indiquant le type de code :

  • Un programme, c'est-à-dire une application indépendante (program) ;
  • Un module utilisable dans un programme ou un autre module (unit).

Ce mot clé doit être suivi d'un identifiant (un nom) afin de pouvoir faire référence à ce module ou ce programme.

Afin que le compilateur trouve les modules à partir de leur nom, il faut que le nom du fichier source soit identique : un module nommé par :

 unit my_unit;

doit être enregistré dans un fichier nommé my_unit.pas.

Exemple 1 : un programme

modifier
 program first_app;
 ...

Exemple 2 : un module

modifier
 unit my_unit;
 ...

Exemple 3 : un programme utilisant le module de l'exemple 2

modifier

Le mot clé uses spécifie la liste des modules utilisés :

 program second_app;
 uses my_unit;
 ...

Compilation

modifier

L'extension des fichiers produits par la compilation varie selon la plateforme utilisée et le compilateur (natif ou P-code).

Cependant, la plupart des compilateurs ne gère pas la compilation en chaîne : chaque module et programme doit être compilé séparément et deux modules ne peuvent donc s'utiliser mutuellement au niveau de leur interface.

Commentaires

modifier

Les commentaires sont encadrés par les accolades :

 program first_app;
 { ma première application en Pascal }
 ...

Alternativement, on peut utiliser les parenthèses-étoiles :

 program first_app;
 (* ma première application en Pascal *)
 ...

Ce qui était plus pratique avec les anciens claviers ne comportant pas les accolades.

Le compilateur Turbo Pascal utilise certains commentaires spéciaux pour préciser des directives de compilations. Ceux-ci débutent par un caractère $, par exemple {$R-,I-} pour désactiver la vérification des erreurs d'intervalle (Range errors) et des erreurs d'entrée-sortie (I/O errors).

Structure générale d'un programme

modifier
 program {nom du programme};
 
 uses {liste des modules utilisés};

 {...déclaration des variables globales et des types...}
 {...déclaration des procédures et fonctions...}
 
 begin
     {...instructions de la routine principale...}
 end.

Structure générale d'un module

modifier

Le module ou unité est divisé en deux grandes parties :

  • La partie interface expose toutes les fonctions, procédures, variables et types publiques, c'est-à-dire accessibles depuis les modules et programmes qui utilisent ce module.
  • La partie implementation contient le code implémentant les fonctions et procédures publiques, et peut contenir d'autres variables, types, fonctions et procédures internes au module.
 unit {nom du module};
 
 interface
 
 uses {liste des modules utilisés};

 {...déclaration des variables globales et des types...}
 {...déclaration des procédures et fonctions...}
 
 implementation
 
 uses {liste des modules utilisés};

 {...déclaration des variables globales et des types...}
 {...déclaration des procédures et fonctions...}
 
 begin
     {...instructions d'initialisation du module...}
 end.

Note : il vaut mieux mettre les références aux autres modules dans la partie « implémentation » si cela est possible afin d’éviter les problèmes de référence circulaire. C'est-à-dire qu’il faut mettre dans la partie « interface » seulement les modules nécessaires à la compréhension des procédures et des fonctions publiques ainsi que de leurs paramètres. Il faut également mettre des références vers les modules contenant les types utilisés dans la partie « interface ».