Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Suprieure

  • Slides: 14
Download presentation
Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http: //zegour. esi. dz/

Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http: //zegour. esi. dz/ email: d_zegour@esi. dz

Fonctions standards : Introduction n Le langage offre deux fonctions très utiles permettant de

Fonctions standards : Introduction n 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). n Le langage offre aussi deux autres fonctions pour la manipulation des chaînes de caractères : CARACT et LONGCHAINE n Sémantique des fonctions standards : Il s’agit de les transformer en des formes internes qui permettent de faciliter leur interprétation ou génération de code.

Sémantique des listes linéaires : Quadruplés n Génération aléatoire : ALEACHAINE(N), ALEANOMBRE(N) (‘Aleachaine’, A

Sémantique des listes linéaires : Quadruplés n Génération aléatoire : ALEACHAINE(N), ALEANOMBRE(N) (‘Aleachaine’, A , B, C ) A : pointeur dans TABOB vers l’entier N B : non utilisé C : pointeur dans TABOB vers le résultat de type chaine (‘Aléanombre’, A , B, C ) A : pointeur dans TABOB vers l’entier N B : non utilisé C : pointeur dans TABOB vers le résultat de type entier

Sémantique des listes linéaires : Quadruplés n Chaînes de caractères : CARACT(Chaine, Rang) LONGCHAINE(Chaine)

Sémantique des listes linéaires : Quadruplés n Chaînes de caractères : CARACT(Chaine, Rang) LONGCHAINE(Chaine) (‘Caract’, A , B, C ) A : pointeur dans TABOB vers la chaîne de caractères B : pointeur dans TABOB vers le rang C : pointeur dans TABOB vers le résultat de type chaine (‘Longchaine’, A , B, C ) A : pointeur dans TABOB vers l’entier N B : non utilisé C : pointeur dans TABOB vers le résultat de type entier

Fonctions standards : Déclarations Types dans {Entier, Booleen, Car, Chaine} Sep dans {: ,

Fonctions standards : Déclarations Types dans {Entier, Booleen, Car, Chaine} Sep dans {: , Une, Des} Cste constante numérique entière Chaîne chaîne de caractères Idf identificateur Opr dans { <, <=, >, >=, =, <> } Opa dans { +, -, Ou } Opm dans { *, /, Et } Sign dans {+, -} Tableau est synonyme de Vecteur Init_tableau est synonyme de Init_vecteur

Fonctions standards : Déclarations <Algo Z> [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin [;

Fonctions standards : Déclarations <Algo Z> [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin [; ] { ~<Act> | <Fonct>~ [; ] }* <Act> Action Idf [ ( <Li> ) ] [; ] [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin <Fonct> Fonction Idf ( <Li> ) : <Typ> [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin <Ps> <S>; { [~Soit|Soient~] <S>; }* <S> <Li>[Sep ~<Typ>|~Action|Fonction(<Typ>)~ ~] Idf {, Idf}*

Fonctions standards : Déclarations <Typ> Types | <Structsimple> | <Structcomplexe> | Machine_car | Machine_nombre

Fonctions standards : Déclarations <Typ> Types | <Structsimple> | <Structcomplexe> | Machine_car | Machine_nombre | [Pointeur vers [Sep] ] Liste [ De ~Types | <Structsimple>~ | Fichier De ~ Types | Vecteur(Cste) De ~Types | <Structsimple> | <Structcomplexe> ~ ~ Buffer <Li> [Entete] (Types {, types }*) | Tableau (<Lc>) [De~<Structsimple> | Types~ ] | <Structsimple> <Structcomplexe> [Structure ](Types {, Types }*) [Structure ]( ~ Types | Vecteur(Cste) De Types ~ {, ~ Types | Vecteur(Cste) De Types ~ }*) <Lc> Cste {, Cste}*

Fonctions standards : Instructions < Lis > < Inst > { ; < Inst

Fonctions standards : Instructions < Lis > < Inst > { ; < Inst > }* <Inst> Idf : = <Exp> | Lire ( Idf {, Idf }* ) | Ecrire (<Exp> {, <Exp>}* ) | Tantque <Exp> [ : ] <Lis> Fintantque | Si <Exp> [: ] <Lis> [Sinon <Lis>] Fsi | Pour Idf: = <Exp>, <Exp> [, <Exp>][: ] <Lis> Finpour | Appel Idf [(Exp {, <Exp>}*)] |

Fonctions standards : Instructions <Inst> ~Liberer| Allouer | Fermer ~ ( <Exp> ) |

Fonctions standards : Instructions <Inst> ~Liberer| Allouer | Fermer ~ ( <Exp> ) | ~ Aff_adr|Aff_val~ ( <Exp> , <Exp> ) | Ouvrir ((Idf, Chaine) | ~ Creer_liste |Init_vecteur|Init_struct|Creer_mnombre ~ ( Idf , [[ ~<Exp>|[[<Exp> {, <Exp>}*]] ~ {, ~<Exp>|[[<Exp> {, <Exp>}*]]~}* ]] ) | Aff_element ( <Exp> [[ <Exp> {, <Exp> }* ] , <Exp> ) | ~ Aff_struct | Aff_entete ~ (Idf, Cste, <Exp>) | Creer_mcar (Idf, [[ Chaine ]] ) |

Fonctions standards : Instructions <Inst> ~Lireseq|Ecrireseq|Rajouter|Lirecar|Lirenombre~(Idf, Idf) | ~ Liredir | Ecriredir ~ (Idf,

Fonctions standards : Instructions <Inst> ~Lireseq|Ecrireseq|Rajouter|Lirecar|Lirenombre~(Idf, Idf) | ~ Liredir | Ecriredir ~ (Idf, Cste, Idf)

Fonctions standards : Expressions <Exp> <Exps> <Terme> <Facteur> <Fonct> <Exps>[ Opr <Exps>] [Sign] <Terme>

Fonctions standards : Expressions <Exp> <Exps> <Terme> <Facteur> <Fonct> <Exps>[ Opr <Exps>] [Sign] <Terme> { Opa <Terme> }* <Facteur>{Opm <Facteur>}* Idf [(Exp {, <Exp>}*)] | Cste | ( <Exp>) | <Fonct> | Nil Non <Facteur> | Vrai | Faux | Chaine ~Valeur|Suivant~ ( <Fonct> ) | Element ( <Fonct> [[ <Exp> {, <Exp> }* ]] ) | ~ Struct | Entete | Caract ~ ( Idf, Cste) | ~Nbrcar|Finfich|Alloc_bloc|Nbr. Nombre ~ (Idf) | ~Aleachaine|Aleanombre|Longchaine~(<Exp>)|

Sémantique des fonctions standards : Fonctions sémantiques <Fonction> Caract ( Idf, Cste) Fonctions sémantiques

Sémantique des fonctions standards : Fonctions sémantiques <Fonction> Caract ( Idf, Cste) Fonctions sémantiques et Descriptions à trouver Fx Description <Fonction>

Sémantique des fonctions standards : Fonctions sémantiques <Fonction> ~Aleachaine|Aleanombre|Longchaine~(<Exp>) Fonctions sémantiques et Descriptions à

Sémantique des fonctions standards : Fonctions sémantiques <Fonction> ~Aleachaine|Aleanombre|Longchaine~(<Exp>) Fonctions sémantiques et Descriptions à trouver Fx Description <Fonction>

Sémantique des fonctions standards : Exemple Soit ch une chaine; i un entier; debut

Sémantique des fonctions standards : Exemple Soit ch une chaine; i un entier; debut ch : = aleachaine(15); pour i: =1, longchaine(ch) ecrire( caract(ch, i)) fpour; ecrire(caract(ch, aleanombre(10)+ 1)); fin TABCONS ‘ 15’, ’ 10’ 0 LONGZDD TABTYP 1 2 9 SEB TABCOMP 0 7 1 11 0 ‘Dcc’ 0 0 ‘L’ 1 1 0 1 ‘De’ 1 1 ‘L’ 2 1 1 2 ‘Alea’ 2 3 2 ‘C’ 2 1 0 3 ‘Aff’ 0 3 3 ‘X’ 1 1 3 4 ‘Longc’ 0 5 4 ‘C’ 2 1 1 5 ‘<=’ 1 5 6 5 ‘X’ 2 1 1 6 ‘B’ 6 7 11 6 ‘X’ 3 1 2 7 ‘Carac’ 0 1 7 7 ‘X’ 1 1 3 8 ‘Ecrire’ 0 1 8 ‘C’ 2 1 2 9 ‘+E’ 1 4 9 ‘X’ 2 1 5 10 ‘Br’ 5 10 ‘X’ 2 1 6 11 ‘Alean’ 8 11 ‘X’ 1 1 4 ‘+E’ 9 4 10 ‘Carac’ 0 10 11 ‘Ecrire’ 1 1 1 9 Quadruplés générés TABOB