Fonctions standards Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI)
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 [ ~Soit|Soient~ ] Debut Fin [;] { ~ | ~ [;] }* Action Idf [ ( ) ] [;] [ ~Soit|Soient~ ] Debut Fin Fonction Idf ( ) : [ ~Soit|Soient~ ] Debut Fin ;{ [~Soit|Soient~] ;}* [Sep ~ |~Action|Fonction( )~ ~] Idf {, Idf}*
Fonctions standards : Déclarations Types | | | Machine_car | Machine_nombre | [Pointeur vers [Sep] ] Liste [ De ~Types | ~ | Fichier De ~ Types | Vecteur(Cste) De ~Types | | ~ ~ Buffer [Entete] (Types {, types }*) | Tableau ( ) [De~ | Types~ ] | [Structure ](Types {, Types }*) [Structure ]( ~ Types | Vecteur(Cste) De Types ~ {, ~ Types | Vecteur(Cste) De Types ~ }*) Cste {, Cste}*
Fonctions standards : Instructions { ; }* Idf := | Lire ( Idf {, Idf }* ) | Ecrire ( {, }* ) | Tantque [ : ] Fintantque | Si [:] [Sinon ] Fsi | Pour Idf:=, [, ][:] Finpour | Appel Idf [(Exp {, }*)] |
Fonctions standards : Instructions ~Liberer| Allouer | Fermer ~ ( ) | ~ Aff_adr|Aff_val~ (, ) | Ouvrir ((Idf, Chaine, Chaine) | ~ Creer_liste |Init_vecteur|Init_struct|Creer_mnombre ~ ( Idf, [[ ~ |[[ {, }*]] ~ {, ~ |[[ {, }*]]~}* ]] ) | Aff_element ( [[ {, }* ], ) | ~ Aff_struct | Aff_entete ~ (Idf, Cste, ) | Creer_mcar (Idf, [[ Chaine ]] ) |
Fonctions standards : Instructions ~Lireseq|Ecrireseq|Rajouter|Lirecar|Lirenombre~(Idf, Idf) | ~ Liredir | Ecriredir ~ (Idf, Cste, Idf)
Fonctions standards : Expressions [ Opr ] [Sign] { Opa }* {Opm }* Idf [(Exp {, }*)] | Cste | ( ) | | Nil Non | Vrai | Faux | Chaine ~Valeur|Suivant~ ( ) | Element ( [[ {, }* ]] ) | ~ Struct | Entete | ~ ( Idf, Cste) | ~Nbrcar|Finfich|Alloc_bloc|NbrNombre ~ (Idf) | ~Aleachaine|Aleanombre|Longchaine~( )| Caract
Sémantique des fonctions standards : Fonctions sémantiques Caract ( Idf, Cste) Description Fx Fonctions sémantiques et Descriptions à trouver
Sémantique des fonctions standards : Fonctions sémantiques ~Aleachaine|Aleanombre|Longchaine~( ) Description Fx Fonctions sémantiques et Descriptions à trouver
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 ‘L’ ‘C’210 ‘X’113 ‘C’211 ‘X’ ‘C’212 ‘X’ TABOB 9 LONGZDD 3 Quadruplés générés ‘Dcc’0 ‘De’1 ‘Alea’23 ‘Aff’03 ‘Longc’05 ‘<=’156 ‘B’6711 ‘Carac’017 ‘Ecrire’01 ‘+E’141 ‘Br’5 ‘Alean’89 ‘+E’9410 ‘Carac’01011 ‘Ecrire’ TABTYP SEB 0 ‘15’,’1’,’10’ TABCONS TABCOMP