Structure d'un programme PASCAL
PROGRAM
Mon_programme;
Allocation dynamique (
New ) END;
Allocation dynamique (
New )
END; |
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. )
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.
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.
Quelques optimisations restent à faire telles que le recouvrement des variables temporaires créées.