Programmation Pascal/Structure d'un programme

Un livre de Wikibooks.

Sections

[modifier] Instructions et blocs

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 

Cette instruction Pascal sera traduite par un bloc en Java

 {
   int temp = x ;
   x = y    ;
   y = temp ;
 }

[modifier] Catégorie

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.

[modifier] Exemple 1 : un programme

program first_app;
...

[modifier] Exemple 2 : un module

unit my_unit;
...

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

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

program second_app;
uses my_unit;
...

[modifier] Compilation

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éparemment et deux modules ne peuvent donc s'utiliser mutuellement.

[modifier] Commentaires

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

[modifier] Structure générale d'un programme

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.

[modifier] Structure générale d'un module

Le module est divisé en deux grandes parties :

  • La partie interface expose 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.