Le langage Z - PowerPoint PPT Presentation

1 / 25
About This Presentation
Title:

Le langage Z

Description:

Un Z-algorithme est un ensemble de modules parall les dont le premier est ... d signe une partie facultative, { } un ensemble. Affectation : V := E. Lecture : LIRE(V1, V2, ... – PowerPoint PPT presentation

Number of Views:438
Avg rating:5.0/5.0
Slides: 26
Provided by: dzegou
Category:

less

Transcript and Presenter's Notes

Title: Le langage Z


1
Le langage Z
  • Pr ZEGOUR DJAMEL EDDINE
  • Institut National d'Informatique (INI)
  • httpmembres.lycos.frzegour
  • email d_zegour_at_ini.dz

2
Le langage Z Généralités
  • Un Z-algorithme est un ensemble de modules
    parallèles dont le premier est principal et les
    autres sont soient des actions composées (ACTION)
    soient des fonctions de type quelconque
    (FONCTION).
  •  Les objets globaux sont déclarés dans le module
    principal.
  • La communication entre les modules se fait via
    les paramètres et les variables globales.
  • Les paramètres peuvent être de nimporte quel
    type.
  • Le langage permet laffectation globale de tout
    type.
  •  
  • Quatre types standards sont autorisés  ENTIER,
    BOOLEAN, CAR, CHAINE .

3
Le langage Z Généralités
  • Le langage est l'ensemble des algorithmes
    abstraits, écrits à base de modèles ( machines
    abstraites ).
  •  
  • On définit ainsi des machines de Turing 
    Machine-caractères et Machine-nombres permettant
    linitiation à lalgorithmique.
  • On définit des machines abstraites sur les
    structures, vecteurs et les listes permettant
    linitiation aux structures élémentaires de
    données.
  •  
  • On définit également une machine abstraite sur
    les fichiers permettant linitiation aux
    structures simples de fichiers.
  • Le langage peut être étendu avec d'autres
    machines abstraites.
  •  

4
Le langage Z Généralités
  •  
  • Le langage offre deux fonctions très utiles
    permettant de générer aléatoirement des chaînes
    de caractères (ALEACHAINE) et des entiers
    (ALEANOMBRE).
  • Le langage permet la lecture et lécriture de
    scalaires, vecteurs de nimporte quelle dimension
    et des structures simples ou complexes.
  •  
  • Le format des instructions est libre.
  • Pas de distinction entre majuscule et minuscule.

5
Le langage Z Structure dun algorithme
  • SOIENT
  • Objets locaux et globaux
  • Annonce des modules
  • DEBUT
  • Instructions
  • FIN
  •  
  • Module 1
  • Module 2
  • ....
  • Module n
  •  
  • Chaque module peut être soit une fonction soit
    une action.

6
Le langage Z Définition dune action
  • ACTION Nom (P1, P2, ..., Pn)
  • SOIT 
  • Objets locaux et paramètres
  • DEBUT
  • Instructions
  • FIN
  • Les paramètres sont appelés par référence. Ils
    ne sont pas protégés par laction.

7
Le langage Z Définition dune fonction
  • FONCTION Nom (P1, P2, ...,Pn) Type
  • Objets locaux et paramètres
  • DEBUT
  • Instructions
  • FIN
  •  
  • Type peut être quelconque.
  • Une fonction est utilisée dans une expression.

8
Le langage Z Exemple dun algorithme
SOIENT Mot CHAINE C CAR M
MACHINE_CAR  DEBUT   CREER_MCAR(M, ' Jhh
Jsthd Lkql ifd ') LIRECAR(M, C) TANTQUE
C ltgt '.'   TQ (C' ') ET (C ltgt '.')
LIRECAR(M, C) FTQ   Mot
''   TQ (C ltgt ' ') ET (C ltgt '.')
Mot Mot C LIRECAR(M, C)
FTQ   SI Mot ltgt '' ECRIRE(Mot) FSI  
FINTANTQUE FIN
9
Le langage Z Objets
  • Les objets peuvent être des entiers (ENTIER), des
    booléens (BOOLEEN), des caractères (CAR) ou des
    chaînes de caractères ( CHAINE).
  • Exemples 
  • Les objets peuvent être des machines abstraites 
    Structures, Vecteurs, Listes linéaires chaînées,
    Machine caractères, Machine Nombre et Fichiers.
  • Exemples
  • Il sagit des listes et des vecteurs dentiers.

Soit A, B, C DES BOOLEENS  I, J 
ENTIER  Ch UNE CHAINE  C UN CAR 
Soient L1, L2 DES LISTES  V1 UN
VECTEUR(10, 60) 
10
Le langage Z Objets
  • Autres Exemples 
  • Une structure peut être simple, cad composée
    uniquement de scalaires
  • Une structure peut être complexe, cad composée de
    scalaires etou de vecteurs à une dimension de
    scalaires

SOIENT V1 UN VECTEUR(10, 60) de (CAR,
ENTIER) S UNE STRUCTURE (CHAINE, ENTIER)
F UN FICHIER DE (CHAINE, VECTEUR(5) DE ENTIERS)
BUFFER V1, V2
11
Le langage Z Expressions
  • Comme dans les langages de programmation.
  • Exemples 

(BC) / F , NON Trouv, (X 5) ET NON
Trouv, F(x) ltgt 5 A OU B (A lt B) ET(A
gt5) Etc.
12
Le langage Z Instructions
  • V désigne une variable, E une expression et Idf
    un nom de module.
  • désigne une partie facultative, un
    ensemble.
  •  
  • Affectation  V  E
  • Lecture LIRE(V1, V2, .....)
  • Ecriture ECRIRE(E1, E2, .....)
  • Conditionnelle SI E  
  • Instructions
  • SINON
  • Instructions
  • FSI

13
Le langage Z Instructions
  • Appel APPEL Idf ( E1, E2, ...)
  • Répétitive (Forme 1 ) TQ E  
  • Instructions
  • FTQ
  •  
  • Répétitive (Forme 2 ) POUR V  E1, E2,E3
  • Instructions
  • FPOUR
  • E3 désigne le pas.

14
Le langage Z Machines abstraites
  • Machine-caractères
  • LIRECAR, NBRCAR
  • Machine-nombres
  • LIRENOMBRE, NBRNOMBRE
  • Listes linéaires chaînées
  • ALLOUER , LIBERER , VALEUR, SUIVANT,
  • AFF_ADR, AFF_VAL
  • Vecteurs 
  • ELEMENT, AFF_ELEMENT
  • Structures
  • STRUCT, AFF_STRUCT
  • Fichiers
  • OUVRIR, FERMER, LIRESEQ, ECRIRESEQ, LIREDIR,
  • ECRIREDIR, RAJOUTER, FINFICH, ENTETE,
  • AFF_ENTETE, ALLOC_BLOC

15
Le langage Z Opérations de haut niveau
  • Machine-caractères
  • CREER_MCAR,
  • Machine-caractères
  • CREER_MNOMBRE,
  • Listes
  • CREER_LISTE,
  • Structures
  • INIT_STRUCT
  • Vecteurs
  • INIT_VECTEUR(ou INIT_TABLEAU)
  • Exemple
  •  
  • crée la liste linéaire chaînée L avec les
    valeurs entre crochets dans lordre indiqué.

CREER-LISTE (L, 12, 23, 67, I, IJ )
16
Le langage Z Fonctions standards
  • Nombres
  • ALEACHAINE(Exp), ALEANOMBRE(Exp)
  • Chaînes de caractères
  • LONGCHAINE(Chaine) , CARACT(Chaine, Exp)
  • Exemples
  •  

Aleachaine(5) donne par exemple
bxrfd Aleanombre(1000) donne par exemple
675 Longchaine(bcdgfd) donne
6 Caract(gfrd, 3) donne r
17
Grammaire de Z Notation EBNF
  • Conventions
  • --- ---   Choix
  • ----  Partie facultative
  •   Crochet ouvrant
  •   Crochet fermant
  • ---  Répétition ( ? 0 )
  •  

18
Grammaire de Z Déclarations
  • Types dans Entier, Booleen, Car, Chaine
  • Sep dans , Un, Une, Des
  • Cste désigne une constante numérique entière
  • Idf désigne un identificateur
  • Opr dans lt, lt, gt, gt, , ltgt
  • Opa dans , -, Ou
  • Opm dans , /, Et
  • Sign dans , -
  • Cstelog dans Vrai, Faux
  • Chaîne  chaîne de caractères
  • Tableau est synonyme de Vecteur
  • Init_tableau est synonyme de Init_vecteur

19
Grammaire de Z Déclarations
  • ltAlgo Zgt ? SoitSoient ltPsgt Debut ltLisgt
    Fin
  • ltActgt ltFonctgt
  •  
  • ltActgt ? Action Idf ( ltLigt )
  • SoitSoient ltPsgt Debut ltLisgt Fin
  •  
  • ltFonctgt ? Fonction Idf ( ltLigt ) ltTypgt
  • SoitSoient ltPsgt Debut ltLisgt Fin
  •  
  • ltPsgt ? ltSgt SoitSoient ltSgt
  •  
  • ltSgt ? ltLigtSep ltTypgtActionFonction(ltT
    ypgt)
  • ltLigt ? Idf , Idf

20
Grammaire de Z Déclarations
  • ltTypgt ? Types ltStructsimplegt
    ltStructcomplexegt
  • Machine_car
  • Machine_nombre
  • Pointeur vers Sep Liste De
  • Types ltStructsimplegt
  • Tableau (ltLcgt) DeltStructsimplegt Types
  • Fichier De Types Vecteur(Cste) De Types
  • ltStructsimplegt ltStructcomplexegt
  • Buffer ltLigt Entete (Types , types )
  •  
  • ltStructsimplegt ? Structure (Types , Types )
  • ltStructcomplexegt? Structure ( Types
    Vecteur(Cste) De Types
  • , Types Vecteur(Cste) De Types )
  •  ltLcgt ? Cste , Cste
  •  

21
Grammaire de Z Instructions
  • lt Lis gt ? lt Inst gt lt Inst gt
  •  
  • ltInstgt ?
  • Idf ltExpgt
  • Tantque ltExpgt ltLisgt Fintantque
  •  
  • Si ltExpgt ltLisgt Sinon ltLisgt
    Fsi
  •  
  • Pour Idf ltExpgt,ltExpgt , ltExpgt ltLisgt
    Finpour
  •  
  • Appel Idf (Exp ,ltExpgt)
  •   Lire ( Idf , Idf )
  •   Ecrire (ltExpgt ,ltExpgt )

22
Grammaire de Z Instructions
  • ltInstgt ?
  • Liberer Allouer Fermer ( ltExpgt )
  • Ouvrir ((Idf, Chaine, Chaine)
  • LirecarLirenombreLireseqEcrireseqRajouter
  • (Idf, Idf)
  • Aff_adrAff_val ( ltExpgt , ltExpgt )
  •   Creer_liste Init_vecteurCreer_mnombre
  • Init_struct ( Idf , ltExpgtltExpgt ,
    ltExpgt
  • , ltExpgtltExpgt , ltExpgt )
  • Creer_mcar(Idf, Chaine ) 
  • Aff_element ( ltExpgt ltExpgt ,
    ltExpgt ,ltExpgt )
  •   Aff_structAff_entete(Idf, Cste, ltExpgt)
  • Liredir Ecriredir (Idf, Cste, Idf)

23
Grammaire de Z Expressions
  • ltExpgt ? ltExpsgt Opr ltExpsgt
  •  
  • ltExpsgt ? Sign ltTermegt Opa ltTermegt
  • ltTermegt ? ltFacteurgtOpm ltFacteurgt
  •  
  • ltFacteurgt ? Idf ( ltExpgt , ltExpgt )
    Cste
  • ltFonctgt NIL ( ltExpgt)
  • Chaine Non ltFacteurgt Cstelogic
  •  
  • ltFonctgt ? ValeurSuivant ( ltFonctgt )
  • Element ( ltFonctgt
    ltExpgt , ltExpgt )
  • Struct EnteteCaract ( Idf, Cste)
  • Aleachaine Aleanombre Longchaine
  • ( ltExpgt )
  • NbrcarNbrNombreFinfichAlloc_bloc (Idf)
  •  

24
Grammaire de Z Compléments
  • Une chaîne de caractères est délimitée par le
    symbole . Si ce dernier figure dans la chaîne,
    il est doublé.
  • Les commentaires sont entre les symboles / et
    /. Elles sont insérées là où un espace peut
    figurer.

25
Grammaire de Z Expérimentation
  • Bien comprendre la grammaire en expérimentant le
    langage Z
Write a Comment
User Comments (0)
About PowerShow.com