La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Le langage Z Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)

Présentations similaires


Présentation au sujet: "Le langage Z Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)"— Transcription de la présentation:

1 Le langage Z Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)

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 et 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 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 <> '.' TQ (C=' ') ET (C <> '.') LIRECAR(M, C) FTQ ; Mot := ''; TQ (C <> ' ') ET (C <> '.') Mot := Mot + C ; LIRECAR(M, C) FTQ; SI Mot <> '' 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 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 et|ou 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 : (B+C) / F, NON Trouv, (X # 5) ET NON Trouv, F(x) <> 5 A OU B (A 5) Etc.

12 Le langage Z : Instructions Affectation : V := E Lecture:LIRE(V1, V2,.....) Ecriture:ECRIRE(E1, E2,.....) Conditionnelle:SI E [ : ] { Instructions } [ SINON { Instructions } ] FSI Conventions: V désigne une variable, E une expression et Idf un nom de module. [ ] désigne une partie facultative, { } un ensemble.

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. Conventions: V désigne une variable, E une expression et Idf un nom de module. [ ] désigne une partie facultative, { } un ensemble.

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 CREER-LISTE (L, [12, 23, 67, I, I+J] )

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 {, >=, =, <> } 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 [ ~ Soit|Soient ~ ] Debut Fin [;] { ~ | ~ [;] }* Action Idf [ ( ) ] [;] [ ~ Soit|Soient ~ ] Debut Fin Fonction Idf ( ) : [ ~Soit|Soient ~ ] Debut Fin ;{ [ ~Soit|Soient ~ ] ;}* [Sep ~ | ~Action|Fonction( )~ ~] Idf {, Idf}*

20 Grammaire de Z: Déclarations Types | | | Machine_car | Machine_nombre | [Pointeur vers [Sep] ] Liste [ De ~Types | ~ | Tableau ( ) [De~ | Types~ ] | Fichier De ~ Types | Vecteur(Cste) De ~Types | | ~ ~ Buffer [Entete] (Types {, types }*) [Structure ](Types {, Types }*) [Structure ]( ~ Types | Vecteur(Cste) De Types ~ {, ~ Types | Vecteur(Cste) De Types ~ }*) Cste {, Cste}*

21 Grammaire de Z: Instructions { ; }* Idf := | Tantque [ : ] Fintantque | Si [:] [Sinon ] Fsi | Pour Idf:=, [, ][:] Finpour | Appel Idf [(Exp {, }*)] | Lire ( Idf {, Idf }* ) | Ecrire ( {, }* ) |

22 Grammaire de Z: Instructions ~Liberer | Allouer | Fermer~ ( ) | Ouvrir ((Idf, Chaine, Chaine) | ~Lirecar|Lirenombre|Lireseq|Ecrireseq|Rajouter~ (Idf, Idf) | ~ Aff_adr|Aff_val~ (, ) | ~ Creer_liste |Init_vecteur|Creer_mnombre| Init_struct ~ ( Idf, [[ ~ |[[ {, }*]] ~ {, ~ |[[ {, }*]]~}* ]] ) | Creer_mcar(Idf, [[ Chaine ]]) | Aff_element ( [[ {, }* ]], ) | ~Aff_struct|Aff_entete~(Idf, Cste, ) | ~ Liredir | Ecriredir ~ (Idf, Cste, Idf)

23 Grammaire de Z: Expressions [ Opr ] [Sign] { Opa }* | {Opm }* Idf [ ( {, } * ) ] | Cste | | NIL | ( ) | Chaine | Non | Cstelogic ~Valeur|Suivant~ ( ) | Element ( [[ {, }* ]] ) ~Struct |Entete|Caract~ ( Idf, Cste) | ~ Aleachaine | Aleanombre | Longchaine~ ( ) | ~Nbrcar|NbrNombre|Finfich|Alloc_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


Télécharger ppt "Le langage Z Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure dInformatique (ESI)"

Présentations similaires


Annonces Google