150 likes | 276 Views
Fonctions standards. Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz/ email: d_zegour@esi.dz. Fonctions standards : Introduction.
E N D
Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz/ email: d_zegour@esi.dz
Fonctions standards : Introduction • 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 offre aussi deux autres fonctions pour la manipulation des chaînes de caractères : CARACT et LONGCHAINE • 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 • Génération aléatoire : ALEACHAINE(N), ALEANOMBRE(N) A : pointeur dans TABOB vers l’entier N B : non utilisé C : pointeur dans TABOB vers le résultat de type chaine A : pointeur dans TABOB vers l’entier N B : non utilisé C : pointeur dans TABOB vers le résultat de type entier (‘Aleachaine’,A ,B, C ) (‘Aléanombre’, A ,B, C )
Sémantique des listes linéaires : Quadruplés • Chaînes de caractères : CARACT(Chaine, Rang) LONGCHAINE(Chaine) 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 A : pointeur dans TABOB vers l’entier N B : non utilisé C : pointeur dans TABOB vers le résultat de type entier (‘Caract’,A ,B, C ) (‘Longchaine’, A ,B, C )
Fonctions standards : Déclarations Types dans {Entier, Booleen, Car, Chaine} Sep dans {:, Un, 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 [;] { ~<Act> | <Fonct>~ [;] }* <Act> ActionIdf [ ( <Li> ) ] [;] [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin <Fonct> FonctionIdf( <Li> ): <Typ> [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin <Ps> <S>;{ [~Soit|Soient~] <S>;}* <S> <Li>[Sep ~<Typ>|~Action|Fonction(<Typ>)~ ~] <Li> Idf {,Idf}*
Fonctions standards : Déclarations <Typ> Types | <Structsimple> | <Structcomplexe> | Machine_car | Machine_nombre | [Pointeurvers [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> [Structure ](Types {, Types }*) <Structcomplexe> [Structure ]( ~ Types | Vecteur(Cste)De Types ~ {, ~ Types | Vecteur(Cste) De Types ~ }*) <Lc> Cste {, Cste}*
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 | PourIdf:= <Exp>,<Exp> [, <Exp>][:] <Lis> Finpour | AppelIdf [(Exp {,<Exp>}*)] |
Fonctions standards : Instructions <Inst> ~Liberer| Allouer | Fermer ~ ( <Exp> ) | ~ Aff_adr|Aff_val~ ( <Exp> , <Exp> ) | Ouvrir ((Idf, Chaine, 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, Cste,Idf)
Fonctions standards : Expressions <Exp> <Exps>[ Opr <Exps>] <Exps> [Sign] <Terme> { Opa <Terme> }* <Terme> <Facteur>{Opm <Facteur>}* <Facteur> Idf [(Exp {,<Exp>}*)] | Cste | ( <Exp>) | <Fonct> | Nil Non <Facteur> | Vrai | Faux | Chaine <Fonct> ~Valeur|Suivant~ ( <Fonct> ) | Element( <Fonct> [[ <Exp> {, <Exp> }* ]]) | ~ Struct | Entete | ~ ( Idf, Cste) | ~Nbrcar|Finfich|Alloc_bloc|NbrNombre ~ (Idf) | Caract ~Aleachaine|Aleanombre|Longchaine~(<Exp>)|
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 à trouver Fx Description <Fonction>
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 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 TABCONS ‘15’,’1’,’10’ 9 9 0 1 2 10 10 11 11 LONGZDD 9 TABOB TABTYP SEB TABCOMP 0 7 1 11 Quadruplés générés