12
Expressions sur les chaînes de caractères Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz/ email: [email protected]

Expressions sur les chaînes de caractères

Embed Size (px)

DESCRIPTION

Expressions sur les chaînes de caractères. Pr ZEGOUR DJAMEL EDDINE Ecole Supérieure d’Informatique (ESI) http://zegour.esi.dz/ email: [email protected]. Chaînes de caractères : Objectif. On distingue les variables Chaîne de caractères ( CHAINE ) : tableau de caractères - PowerPoint PPT Presentation

Citation preview

Page 1: Expressions sur les chaînes de caractères

Expressions sur les chaînes de caractères

Pr ZEGOUR DJAMEL EDDINE

Ecole Supérieure d’Informatique (ESI)

http://zegour.esi.dz/

email: [email protected]

Page 2: Expressions sur les chaînes de caractères

Chaînes de caractères : Objectif

On distingue les variables

- Chaîne de caractères (CHAINE) : tableau de caractères

- Caractère (CAR) : un seul caractère

Une seule opération : + (concaténation)

Une expression peut contenir un mélange entre variable chaîne de caractères et caractères. Le résultat est toujours une chaîne de caractères

Le résultat de l’affectation dépend de la variable réceptrice

- si caractère : le résultat est tronqué à un seul caractère

Page 3: Expressions sur les chaînes de caractères

Sémantique des expressions sur les chaînes de caractères: Quadruplés

B, C : pointeurs dans TABOB vers les opérandes

D : pointeur dans TABOB sur l’objet qui va contenir le résultat

‘+S’ désigne la concaténation

(‘+S’, B, C , D )

Page 4: Expressions sur les chaînes de caractères

Chaînes de caractères : Déclarations

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 {+, -};

Chaîne : chaîne de caractères

Page 5: Expressions sur les chaînes de caractères

Chaînes de caractères : Déclarations

<Algo Z> [ ~Soit|Soient~ <Ps> ] Debut <Lis> Fin [;]

 

<Ps> <S>;{ [~Soit|Soient~] <S>;}*

 

<S> <Li>[Sep <Typ> ]

<Li> Idf {, Idf}*

<Typ> Entier | Booleen | Chaine | Car

Page 6: Expressions sur les chaînes de caractères

Chaînes de caractères : Instructions

< Lis > < Inst > { ; < Inst > }*

 

<Inst> Idf := <Exp> |

  Lire ( Idf {, Idf }* ) |

  Ecrire (<Exp> {,<Exp>}* ) |

Page 7: Expressions sur les chaînes de caractères

Chaînes de caractères : Expressions

<Exp> <Exps>[ Opr <Exps>]

 

<Exps> [Sign] <Terme> { Opa <Terme> }*

<Terme> <Facteur>{Opm <Facteur>}*

 

<Facteur> Idf | Cste | ( <Exp>) | Non <Facteur> |

Vrai | Faux |

 

 

Chaine

Page 8: Expressions sur les chaînes de caractères

Sémantique des expression CC : déclarations

Pour chaque Identificateur déclaré comme CAR :

- Le mettre dans la table des symboles

- Lui attribuer une adresse relative et le mettre dans la table des objets (soit Pt son emplacement)

- Générer le quadruplé (‘DCC’+Type, Pt, , ) ou (‘DC’+Type, Pt, , )

Page 9: Expressions sur les chaînes de caractères

Sémantique des expressions CC : Fonctions sémantiques

<Exp> <Exps>[ Opr <Exps>]

 

<Exps> <Terme>

{ Opa <Terme> }*

<Terme> <Facteur>{Opm <Facteur>}*

 

<Facteur> Idf | Cste | ( <Exp>) | Non <Facteur> |

Vrai | Faux | Chaine

 

 

F1

F2

F3

F4 F5

Page 10: Expressions sur les chaînes de caractères

Sémantique des expressions CC : Fonctions sémantiques

F1

F2

Vérifier que l’identificateur Idf est déclaré, sinon Erreur. Soit Pt1 son emplacement dans TABOB. Retourner (Pt1)

Si la constante n’existe pas la mettre dans TABCONSCAR et TABOB. Soit Pt1 son emplacement dans TABOB. Retourner (Pt1)

<Facteur>

<Facteur> Idf | Cste | ( <Exp>)

Non <Facteur> | Vrai | Faux | chaine

F1

F2

Page 11: Expressions sur les chaînes de caractères

Sémantique des expressions CC : Fonctions sémantiques

F3 Sauvegarder le résultat de <Terme> dans Temp1 (emplacement dans TABOB). Retourner (Temp1)

<Exps>

<Exps> <Terme> F3 { Opa <Terme> }* F4 F5

F4Sauvegarder l’opérateur dans une variable Op et le résultat de <Terme> dans Temp1 (emplacement dans TABOB)

Récupérer le résultat de <Terme> dans Temp2 (emplacement dans TABOB). Vérifier l’incompatibilité des types de Temp1 et Temp2. Générer une variable temporaire dans TABOB. Soit Ptx son emplacement dans TABOB.Générer le quadruplet (Op, Temp1, Temp2, Ptx). Retourner (Ptx).

F5

Page 12: Expressions sur les chaînes de caractères

Sémantique des expressions CC : Exemple

Soit s, s2 des chaines; c un car;

debut

s := 'abc';s2 := 'xyz';c := 'd';

ecrire( s+ s2 + c);

fin

‘abc’

‘xyz’

‘d’

TABCONS

0

1

En fin de compilation, programme source = table des quadruplés + TABOB + TABCONS + LONGZDD

‘L’ ‘S’ 0

‘L’ ‘S’ 1

‘L’ ‘C’ 2

‘C’ ‘S’ 0

‘C’ ‘S’ 1

‘C’ ‘S’ 2

‘X’ ‘S’ 3

‘X’ ‘S’ 4

0

1

2

TABOB5

LONGZDD

3

4

Quadruplés pour l’expression

‘+S’ 0 1 6

‘+S’ 6 2 7

5

6

7