Sur chaque structure de données, une machine abstraite est définie avec son ensemble d'opérations.
[SOIT/SOIENT] <li> Sep <Machine abstraite>
<Li> : Liste d'identificateurs séparés par des virgules.
Sep dans {:, Un, Une, Des }
Exemples
L1, L2 DES LISTES;
F UNE FILE;
V1 UN VECTEUR(10, 60);
Y UNE LISTE DE PILES DE VECTEUR(5);
Machine abstraite sur les vecteurs
ELEMENT ( T [i, j, ...] )
Accès à l'élément T[i, j, ...]du vecteur T.
AFF_ELEMENT ( T [I, J, ...], Val )
Affecter à l'élément T[i, j, ...] la valeur Val.
ALLOC_TAB ( T )
Allocation d'un tableau de taille spécifiée par la définition de T.L'adresse est rendue dans la variable T.
LIBER_TAB ( T )
Libération de l'espace mémoire pointé par T.
Machine abstraite sur les structures
STRUCT ( S, i)
Accès au i-ème champ de la structure S
AFF_STRUCT ( S, i, Exp )
Affecter à la structure S dans son i-ème champ l'expression Exp.
ALLOC_STRUCT ( S )
Allocation d'un espace mémoire de taille spécifiée par la définition de S. L'adresse est rendue dans la variable S.
LIBER_STRUCT ( S )
Libération de l'espace mémoire pointé par S.
Machine abstraite sur les listes linéaires chaînées
ALLOUER ( P )
Crée un maillon et retourne son adresse dans P.
LIBERER ( P )
Libère le nœud d'adresse P.
SUIVANT ( P )
Accès au champ 'Adresse' du nœud référencé par P.
VALEUR ( P )
Accès au champ 'Valeur' du nœud référencé par P.
AFF_ADR ( P, Q )
Affecter au champ 'Adresse' du nœud référencé par P, l'adresse Q.
AFF_VAL( P, Val )
Affecter au champ 'Valeur' du nœud référencé par P, la valeur Val.
Machine abstraite sur les listes bidirectionnelles
ALLOUER ( P )
Crée un maillon et retourne son adresse dans P.
LIBERER ( P )
Libère le nœud d'adresse P.
SUIVANT ( P )
Accès au champ 'Adresse droite' du nœud référencé par P.
PRECEDENT ( P )
Accès au champ 'Adresse gauche' du nœud référencé par P.
VALEUR ( P )
Accès au champ 'Valeur' du nœud référencé par P.
AFF_ADRD ( P, Q )
Affecter au champ 'Adresse droite' du nœud référencé par P, l'adresse Q
AFF_ADRG ( P, Q )
Affecter au champ 'Adresse gauche' du nœud référencé par P, l'adresse Q.
AFF_VAL( P, Val )
Affecter au champ 'Valeur' du nœud référencé par P, la valeur Val.
Machine abstraite sur les files d'attente
CREERFILE ( F )
Crée une file d'attente vide.
FILEVIDE ( F)
Teste si une file d'attente est vide.
ENFILER ( F, Val )
Enfiler (rajouter en queue) la valeur Val dans la file d'attente F.
DEFILER ( F, Val )
Défiler ( récupérer de la tête ) une valeur pour la mettre dans Val.
Machine abstraite sur les piles
CREERPILE ( P )
Crée une pile vide.
PILEVIDE ( P )
Teste si une pile est vide.
EMPILER ( P, Val )
Empiler (rajouter au sommet) la valeur Val dans la pile P.
DEPILER ( P, Val )
Dépiler ( récupérer du sommet ) une valeur pour la mettre dans Val.
Machine abstraite sur les arbres de recherche binaire
CREERNOEUD ( Val )
Crée un nœud avec l'information Valet retourne l'adresse du nœud. Les autres champs sont à NIL.
LIBERERNOEUD ( P )
Libère le nœud d'adresse P.
FG ( P )
Accès au champ Fils gauche du nœud référencé par P.
FD ( P )
Accès au champ Fils droit du nœud référencé par P.
PERE ( P )
Accès au champ Père du nœud référencé par P.
INFO ( P )
Accès au champ Info du nœud référencé par P.
AFF_FG ( P, Q )
Affecter au champ Fils gauche du nœud référencé par p, l'adresse Q
AFF_FD ( P, Q )
Affecter au champ Fils droit du nœud référencé par p, l'adresse Q
AFF_PERE ( P, Q )
Affecter au champ Père du nœud référencé par p, l'adresse Q
AFF_INFO( P, Val )
Affecter au champ Info du nœud référencé par p, la valeur Val
Machine abstraite sur les arbres de recherche m-aire
CREERNOEUD ( Val )
Crée un nœud avec l'information Val et retourne l'adresse du nœud. Les autres champs sont à NIL.
LIBERERNOEUD ( P )
Libère le nœud d'adresse P.
FILS ( P, I )
Accès au champ I-ième fils du nœud référencé par P.
PERE ( P )
Accès au champ Père du nœud référencé par P.
INFOR ( P, I )
Accès au I-ième champ Info du nœud référencé par P.
AFF_FILS ( P, I, Q )
Affecter au champ I-ième fils du nœud référencé par P, l'adresse Q.
AFF_PERE ( P, Q )
Affecter au champ Père du nœud référencé par P, l'adresse Q.
AFF_INFOR( P, I, Val )
Affecter au I-ième champ Information du nœud référencé par P, la valeur Val.
Machine abstraite sur les fichiers
OUVRIR (Fl, Fp, Mode)
Ouvrir le fichier logique Fl et l'associer au fichier physique Fp en précisant le mode( fichier nouveau('N') ou ancien 'A') )
FERMER (Fl)
Fermer le fichier Fl.
LIRESEQ (Fl, V)
Lire dans la variable tampon V le bloc (ou l'article)se trouvant à la position courante.
ECRIRESEQ (Fl, V)
Ecrire le contenu de la variable tampon V à la position courante du fichier Fl.
LIREDIR (Fl, V, N) :
Lire le N-ième bloc (ou article) du fichier Fl dans la variable tampon V.
ECRIREDIR (Fl, V, N)
Ecrire le contenu de la variable tampon V à la N-ième position du fichier Fl.
RAJOUTER(Fl, V)
Ecrire le contenu de la variable tampon à la fin du fichier Fl.
FINFICH(Fl)
Prédicat égal à vrai si la fin du fichier Fl est rencontrée, faux sinon.
ALLOC_BLOC(Fl)
Fournit un bloc (ou article) du fichier dans lequel on pourra écrire.
ENTETE(Fl, I)
Récupérer la I-ième caractéristique du fichier Fl.
AFF_ENTETE(Fl, I, Exp)
Affecter Exp comme la I-ème caractéristique du fichier.