04.07.2013 Views

Modélisation des systèmes temps-réel répartis embarqués pour la ...

Modélisation des systèmes temps-réel répartis embarqués pour la ...

Modélisation des systèmes temps-réel répartis embarqués pour la ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Modélisation</strong> <strong>des</strong> <strong>systèmes</strong> <strong>temps</strong>-<strong>réel</strong> <strong>répartis</strong> <strong>embarqués</strong><br />

V-3.3 Traduction <strong>des</strong> sous-programmes<br />

Règle V.11 (Traduction <strong>des</strong> sous-programmes AADL en Ada)<br />

Les sous-programmes AADL sont traduits en Ada par <strong>des</strong> procédures.<br />

Les accès aux composants de donnée sont traduits par un accès au type de donnée considéré ;<br />

il en va de même <strong>pour</strong> les accès aux sous-programmes. Les paramètres AADL sont traduits par<br />

<strong>des</strong> paramètres de procédure AADL selon les règles suivantes :<br />

– le nom <strong>des</strong> paramètres correspond à celui <strong>des</strong> éléments d’interface ;<br />

– le type <strong>des</strong> paramètres correspond à <strong>la</strong> traduction <strong>des</strong> types AADL correspondants (cf. V-<br />

2.2) ;<br />

– <strong>la</strong> direction <strong>des</strong> paramètres est <strong>la</strong> même que celle déc<strong>la</strong>rée dans <strong>la</strong> <strong>des</strong>cription AADL (« in »,<br />

« out » ou « in out »).<br />

Dans le cas général d’un sous-programme hybride, les différentes séquences d’appel sont traduites<br />

en procédures ; le sous-programme AADL est également traduit en une procédure contenant<br />

le code source d’imp<strong>la</strong>ntation. Cette procédure reprend <strong>la</strong> signature du sous-programme AADL,<br />

en ajoutant le premier paramètre Data que nous avons décrit en section V-2.3.7. Le type de donnée<br />

associé à ce paramètre est un enregistrement contenant les noms <strong>des</strong> connexions AADL et<br />

les accès aux procédures correspondant aux séquences AADL. Dans le cas d’un sous-programme<br />

fourni en interface d’un composant de donnée AADL, l’enregistrement contient aussi un champ<br />

Data, qui est un accès au type de donnée issu du composant de donnée AADL. Les séquences<br />

d’appel sont traduites par <strong>des</strong> procédures qui acceptent comme argument le paramètre Data.<br />

Les listings V.16 et V.17 décrivent tout le code généré à partir de <strong>la</strong> <strong>des</strong>cription AADL du<br />

listing V.12<br />

1 package Partition is<br />

2 type entier is new Integer;<br />

3<br />

4 type spA_impl_control is record<br />

5 a : entier;<br />

6 d : entier;<br />

7 default_value : entier;<br />

8 spD3_e : entier;<br />

9 end record;<br />

10<br />

11 type spA_impl_sequence is<br />

12 access procedure (Status : in out spA_impl_control);<br />

13<br />

14 procedure spA_impl (a : in entier; d : out entier);<br />

15 procedure spB (e : in entier; s : out entier);<br />

16 procedure spD (e : in entier; s : out entier);<br />

17 end Partition;<br />

Listing V.16 – Spécifications Ada générées à partir de <strong>la</strong> <strong>des</strong>cription AADL du listing V.12<br />

1 package body Partition is<br />

2 with Algo;<br />

3<br />

4 procedure spA_impl_seq1 (Status : in out spA_impl_control);<br />

5 procedure spA_impl_seq2 (Status : in out spA_impl_control);<br />

6 procedure spA_impl_seq3 (Status : in out spA_impl_control);<br />

7<br />

88 c○ 2007 Thomas Vergnaud

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!