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

Hiver 2006SEG2501 Chapître 51 Chapître 5 SDL – données.

Présentations similaires


Présentation au sujet: "Hiver 2006SEG2501 Chapître 51 Chapître 5 SDL – données."— Transcription de la présentation:

1 Hiver 2006SEG2501 Chapître 51 Chapître 5 SDL – données

2 Hiver 2006SEG2501 Chapître 52 Contenu (1) Données simples en SDL (2) Constructeurs de types de données

3 Hiver 2006SEG2501 Chapître 53 SIGNAL Cid(integer), Digit(integer); DCL no_dig integer; DCL cardid integer; (1) Données simples en SDL

4 Hiver 2006SEG2501 Chapître 54 Déclaration de variables DCL est le mot clé introduisant une déclaration de variables. Après le(s) nom(s) de variable, il y a le nom du type (aussi appelé “sort” en SDL) de la variable. Il y a des types prédéfinis: Boolean, Character, Charstring, Integer, Natural, et Real.

5 Hiver 2006SEG2501 Chapître 55 Mise à jour des variables L’initalisation peut être définie avec la déclaration (voir ci-haut) Pendant une transition, les variables peuvent être affectées de nouvelles valeurs (voir à droite). Une variable est visible dans le processus où elle est déclarée. La valeur d’une variable peut être exportée et devient alors visible à d’autres processus qui l’importent (voir ci- dessous).

6 Hiver 2006SEG2501 Chapître 56 Le symbole de tâche: TASK Contient normalement des affectations; peut aussi contenir d’autres actions formellement définies (comme l’activation d’une horloge) ou une action décrite en français ou autre langue.

7 Hiver 2006SEG2501 Chapître 57 Signal d’entrée avec de paramètres (données) Les valeurs des paramètres doivent être affectées à des variables pour usage futur (voir ci-dessous), sinon elles sont perdues. On ne peut pas accéder aux paramètres d’un signal dans la file d’entrée, ni après la consommation du signal par un symbole d’entrée.

8 Hiver 2006SEG2501 Chapître 58 Exemple: le processus PanelControl (ii)

9 Hiver 2006SEG2501 Chapître 59 Symbole de décision Utilisé pour choisir différentes alternatives lors de l’exécution d’une transition.

10 Hiver 2006SEG2501 Chapître 510

11 Hiver 2006SEG2501 Chapître 511 Le processus PanelControl (iii) À remarquer: Initialisation –DCL Trial_no Integer := 0; Symbole de sortie avec indication du nom du processus de destination

12 Hiver 2006SEG2501 Chapître 512 (2) Constructeurs de types de données Comme la plupart des langages de programmation, SDL a des types de données pré- définis et des constructeurs qui peuvent être utilisés par le concepteur pour définir des types de données nouveaux. En SDL, un type de données est appelé sort. Associés avec les types, il y a des opérateurs (si vous voulez: « methods ») qui peuvent être utilisés avec des types de données particuliers. Des exemples sont donnés dans la suite.

13 Hiver 2006SEG2501 Chapître 513 Opérateurs généraux Pour chaque type pré-défini ou défini par une définition de type du concepteur, les opérateurs suivants sont automatiquement définis: Affectation ‘:=’ Tester l’égalité ‘=’ Tester la non-égalité ‘/=’

14 Hiver 2006SEG2501 Chapître 514 Des opérateurs peuvent être utilisés en notation préfixe ou “in-fixe” “+” : Integer,Integer -> Integer; num : Character -> Integer I := I+1; N := num(‘X’); I := “+”(I,1);

15 Hiver 2006SEG2501 Chapître 515 Boolean "NOT" : Boolean -> Boolean "AND" : Boolean, Boolean -> Boolean "OR" : Boolean, Boolean -> Boolean "XOR" : Boolean, Boolean -> Boolean "=>" : Boolean, Boolean -> Boolean

16 Hiver 2006SEG2501 Chapître 516 Character " Boolean; ">" : Character, Character -> Boolean; ">=" : Character, Character -> Boolean; Num : Character -> Integer; Chr : Integer -> Character;

17 Hiver 2006SEG2501 Chapître 517 Charstring MkString : Character -> Charstring; Length : Charstring -> Integer; First : Charstring -> Character; Last : Charstring -> Character; "//" : Charstring, Charstring -> Charstring; SubString : Charstring, Integer, Integer -> Charstring;

18 Hiver 2006SEG2501 Chapître 518 Duration "+" : Duration, Duration -> Duration; "-" : Duration -> Duration; "-" : Duration, Duration -> Duration; "*" : Duration, Real -> Duration; "*" : Real, Duration -> Duration; "/" : Duration, Real -> Duration; ">" : Duration, Duration -> Boolean; " Boolean; ">=" : Duration, Duration -> Boolean; " Boolean;

19 Hiver 2006SEG2501 Chapître 519 Time "+" : Time, Duration -> Time; "+" : Duration, Time -> Time; "-" : Time, Duration -> Time; "-" : Time, Time -> Duration; " Boolean; ">" : Time, Time -> Boolean; ">=" : Time, Time -> Boolean;

20 Hiver 2006SEG2501 Chapître 520 Integer, Natural "-" : Integer -> Integer; "+" : Integer, Integer -> Integer; "-" : Integer, Integer -> Integer; "*" : Integer, Integer -> Integer; "/" : Integer, Integer -> Integer; "mod" : Integer, Integer -> Integer; "rem" : Integer, Integer -> Integer; " Boolean; ">" : Integer, Integer -> Boolean; " Boolean; ">=" : Integer, Integer -> Boolean; Float : Integer -> Real; Fix : Real -> Integer;

21 Hiver 2006SEG2501 Chapître 521 Real "-" : Real -> Real; "+" : Real, Real -> Real; "-" : Real, Real -> Real; "*" : Real, Real -> Real; "/" : Real, Real -> Real; " Boolean; ">" : Real, Real -> Boolean; " Boolean; ">=" : Real, Real -> Boolean;

22 Hiver 2006SEG2501 Chapître 522 Constructeur de nouveaux types Les notations ” NEWTYPE nom-du-type … ENDNEWTYPE nom-du-type; “ et ” Syntype nom-du- type = type-de-base … Endsyntype; “ peuvent être utilisées pour définir de nouveaux types (voir exemples plus loin) –Subrange d’un type de base (comme en Pascal) –Type d’énumération des valeurs (comme en Pascal) –Structure –Tableau –STRING d’un type quelconque –SET d’un type quelconque –Type abstrait: L’idée d’un type abstrait est comme une classe OO avec interface défini et la définition de propriétés concernant le résultats d’exécution des méthodes (sans donner une implantation). En SDL, des mots clé OPERATORS et AXIOMS sont prévus à cet effet, mais cette notation est rarement utilisée et mal supportée par les outils.

23 Hiver 2006SEG2501 Chapître 523 Définition d’un Subrange syntype example2 = integer constant 0:10; endsyntype;

24 Hiver 2006SEG2501 Chapître 524 Définition d’un type d’énumération newtype KeyPosition literals Off, Stand_by, Service_mode endnewtype;

25 Hiver 2006SEG2501 Chapître 525 Définition d’une structure Défintion d’un type de structure: NEWTYPE Code STRUCT id Integer ; password Charstring ; ENDNEWTYPE Utilisation: DCL C Code; C!id := 4564; C!password := 'zzzzz';

26 Hiver 2006SEG2501 Chapître 526 Définition de tableaux Le générateur ARRAY prend deux paramètres –Le type de l’indice –Le type des élements Il n’y a pas de restriction sur les types qui peuvent être utilisés comme indice. Exemple: NEWTYPE IntXChar Array(Character,Integer) ENDNEWTYPE IntXChar ; /* Declaration d'un tableau */ DCL chrval IntXChar; /* Utilisation dans une TASK */ chrval('X') := chrval('Y') - 1;

27 Hiver 2006SEG2501 Chapître 527 Utilisation de structures et de tableaux


Télécharger ppt "Hiver 2006SEG2501 Chapître 51 Chapître 5 SDL – données."

Présentations similaires


Annonces Google