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 ...
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