Vous êtes sur la page 1sur 2

> Le langage est doté des opérations de haut niveau

Langage Z permettant d’initialiser des vecteurs ou de construire


Définition d'une fonction
( Niveau 1 ) des listes à partir d'un ensemble de valeurs (scalaires
FONCTION Nom (P1, P2, ...,Pn) : Type
ou structures) et d’initialiser les machines de Turing
{ Objets locaux et paramètres }
DESCRIPTION DEBUT
> Le format des instructions est libre.
{ Instructions }
FIN
Généralités Structure d’un Z-algorithme
Type peut être quelconque.
> Un Z-algorithme est un ensemble de modules SOIENT
parallèles dont le premier est principal et les autres { Objets locaux et globaux } Exemple d’un Z-algorithme
sont soient des actions composées (ACTION) soient { Annonce des modules }
des fonctions de type quelconque (FONCTION). DEBUT
{ Instructions } SOIENT
Mot : CHAINE;
> Les objets globaux sont déclarés dans le module FIN
C : CAR;
principal.
Module 1
Module 2 DEBUT
> La communication entre les modules se fait via les
paramètres et les variables globales. ....
Module n CREER_MCAR(M, [' Jhh Jsthd Lkql ifd ']);
> Les paramètres peuvent être de n’importe quel LIRECAR(M, C);
type. TANTQUE C <> '.'
Chaque module peut être soit une fonction soit une
action. TQ (C=' ') ET (C <> '.')
> Quatre types standard sont autorisés : ENTIER,
BOOLEAN, CAR, CHAINE . LIRECAR(M, C)
FTQ ;
> Le langage est l'ensemble des algorithmes abstraits,
Définition d'une action
écrits à base de modèles (machines abstraites). Mot := '';
ACTION Nom (P1, P2, ..., Pn)
> On définit ainsi des machines de Turing : TQ (C <> ' ') ET (C <> '.')
Machine-caractères et Machine-nombres permettant { Objets locaux et paramètres } Mot := Mot + C ;
l’initiation à l’algorithmique. DEBUT LIRECAR(M, C)
FTQ;
> On définit également des machines abstraites sur { Instructions }
les structures, les vecteurs et les listes permettant FIN SI Mot <> '' ECRIRE(Mot) FSI
l’initiation aux structures élémentaires de données.
FINTANTQUE
> Le langage peut être étendu avec d'autres machines FIN
abstraites.
Objets [ ] désigne une partie facultative, { } un ensemble. Vecteurs
Affectation : V := E
Lecture : LIRE(V1, V2, .....) ELEMENT, AFF_ELEMENT
Les objets peuvent être des scalaires :ENTIER, Ecriture : ECRIRE(E1, E2, .....)
BOOLEEN, CAR, CHAINE Conditionnelle : SI E [ : ] Structures
{ Instructions }
Exemples : [ SINON STRUCT, AFF_STRUCT
A, B, C DES BOOLEENS ; { Instructions } ]
I, J : ENTIER ; FSI
Ch UNE CHAINE ; Fichiers
Appel : APPEL Idf [ ( E1, E2, ...) ]
C UN CAR ; Répétitive : TQ E [ : ] OUVRIR, FERMER, ENTETE, AFF_ENTETE,
( Forme 1 ) { Instructions } LIRESEQ, LIREDIR, ECRIRESEQ,
Les objets peuvent être des machines abstraites : FTQ ECRIREDIR, RAJOUTER, ALLOC-BLOC,
STRUCTURE (Structures), VECTEUR(Vecteurs)
FINFICH
et LISTE(Listes linéaires chaînées) Répétitive : POUR V := E1, E2,E3
( Forme 2 ) { Instructions }
Exemples FPOUR Opérations de haut niveau
I, J, K DES ENTIERS ;
L1, L2 DES LISTES DE CHAINES ; E3 désigne le pas. CREER_MCAR,
A UNE STRUCTURE (CHAINE, CREER_MNOMBRE,
ENTIER) ; CREER_LISTE,
V1 UN VECTEUR(10, 60) ; INIT_STRUCT,
Opérations liées aux machines INIT_VECTEUR(ou INIT_TABLEAU)
V2 UNE STRUCTURE (ENTIER,
BOOLEEN) ; abstraites
F UN FICHIER DE (ENTIER, VECTEUR(10)) Exemple:
ENTETE ENTIER BUFFER BUF1, BUF2 ; Machine-caractères
CREER-LISTE (L, [12, 23, 67, I, I+J] )
LIRECAR, NBRCAR Crée la liste linéaire chaînée L avec les valeurs entre
Expressions crochets dans l’ordre indiqué.

Comme dans les langages de programmation. Machine-nombres


Exemples :
(B+C) / F , NON Trouv, (X # 5) ET NON Trouv, LIRENOMBRE, NBRNOMBRE
F(x) <> 5

Instructions Listes linéaires chaînées

V désigne une variable, E une expression et Idf un ALLOUER , LIBERER , VALEUR, SUIVANT,
nom de module. AFF_ADR, AFF_VAL