Aller au contenu

Langage Pascal/Structure d’un programme

Leçons de niveau 15
Une page de Wikiversité, la communauté pédagogique libre.
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 | modifier le wikicode]

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 | modifier le wikicode]

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 | modifier le wikicode]
 program first_app;
 ...

Exemple 2 : un module

[modifier | modifier le wikicode]
 unit my_unit;
 ...

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

[modifier | modifier le wikicode]

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

 program second_app;
 uses my_unit;
 ...

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.

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 | modifier le wikicode]
 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 | modifier le wikicode]

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 ».