Eléments de traduction

 

     

Structure d'un programme PASCAL 

Passage des paramètres         

Variables temporaires     

Implémentation des types abstraits             

Fichiers

Nomination des opérations

Paramètres de la traduction

Optimisation

Structure d'un programme PASCAL
 

PROGRAM Mon_programme;
Implémentations (Définition des types et des opérations)

Déclaration des variables ( Mon_programme)

Fonctions standards
Macro opérations

Prototypes des procédures et/ou fonctions (FORWARD)


Module 1 ( Procédure ou Fonction)
BEGIN

Allocation dynamique ( New )
Déclaration des variables
Corps

END;



Module 2 ( Procédure ou Fonction)
BEGIN

Allocation dynamique ( New )
Déclaration des variables
Corps

END;
...
BEGIN ( Programme principal )
Allocation dynamique ( New )
Corps de Mon_programme
READLN;
END.

Passage des paramètres

Tous les paramètres sont passés par adresses (Option VAR).

Lors des appels, des variables temporaires sont créées pour les expressions (_Px1,_Px2, etc. )
 

Variables temporaires

Des variables, des enregistrements ou des tableaux temporaires peuvent être générés par le traducteur.

Ils sont préfixées par le symbole '_'.

Implémentation des types abstraits

Toutes les machines sont implémentées par les adresses.
Adresse vers la structure
Adresse vers le tableau
Adresse vers le bloc d'un fichier

Fichier
 

En PASCAL, la bibliothèque Sysutils est utilisée avec les fonctions : Filecreate, Fileopen, Fileclose, Fileseek, Filewrire et Fileread.

Le bloc d'en-tête se trouve au début du fichier.

Gestion spéciale des fichiers ouverts

        _Empiler_ouvert: empile un fichier ouvert (Nom et Handle)
        _Depiler_ouvert: dépile le dernier fichier ouvert(Nom) d'un handle donné.
        _Ouvert : teste si un fichier de nom donné existe ou pas.

Quand on définit un fichier, deux structures sont envisagées
- Définition de la structure du bloc du fichier avec des adresses. Si à l'intérieur du bloc, il ya un tableau c'est son adresse qui est considérée.

- Définition du bloc réel du fichier (sans adresse)

Nomination des opérations

Les noms des opérations des machines sont post fixés par les types.

Paramètres de la traduction

Le langage Z permet le partage des fichiers, c'est à dire un même fichier peut être ouvert plusieurs fois. Selon le compilateur Pascal utilisé, le partage de fichier peut ne pas être permis. Dans ce cas, une gestion spéciale des fichiers ouverts est intégrée dans la traduction.

Optimisations

Quelques optimisations restent à faire telles que le recouvrement des variables temporaires créées.