Éléments de base du langage Package
Packages permettent un code structuré
On regroupe dans le package des choses de même « nature »Ancêtres des objets, ProgrammationOrientéObjet
Packages permettent une meilleure réutilisation
Packages permettent une compilation séparée
Comme en JAVA
Compilation des packagesDépendance entre packages
Packages ont
Une interface visible de l’extérieurUn corps (body) caché de l’extérieur
Packages contiennent
Fonctions, Types, Constantes, Variables, …
Utilisation des packages
Déclaration des packages utilisés with my_package ;
Utilisation d’une fonction my_package.mpFonction_1 (…) ;
Ou, si le package est fortement utilisé use my_package ; mpFonction_1 (…) ;
Attention cela nuit à la clarté du code, car on ne sait pas d’où vient la fonction
Codage de l’interface package PILE is — spécification
— EMPILER et DEPILER visibles
— de l’extérieur
procedure EMPILER(X: in Integer) ;
function DEPILER return Integer ;
end PILE ;
Codage du corps
Package body PILE is — corps
MAX : constant := 100 ; — partie non visible
P : array (1 .. MAX) of Integer;
HAUT : Integer range 0..MAX ;
— partie visible
— car dans l’interface
procedure EMPILER(X: in Integer) is
begin
HAUT := HAUT + 1;
P(HAUT) := X;
end EMPILER;
function DEPILER return Integer is
begin
HAUT := HAUT-1 ;
return P(HAUT+1) ;
end DEPILER
begin — initialisation du package
HAUT := O ;
end PILE ;
Éléments de base du langage Package générique
Codage de l’interface
generic
MAX : Integer;
type Item is private ;
package PILE is — spécification
— EMPILER et DEPILER visibles
— de l’extérieur
procedure EMPILER(X: in Item) ;
function DEPILER return Item ;
end PILE ;
Codage du corps
Package body PILE is — corps
— partie non visible
P : array(1 .. MAX) of Item;
HAUT : Integer range 0..MAX ;
— partie visible
— car dans l’interface
procedure EMPILER(X: in Item) is
begin
HAUT := HAUT + 1;
P(HAUT) := X;
end EMPILER;
function DEPILER return Item is
begin
HAUT := HAUT-1 ;
return P(HAUT+1) ;
end DEPILER
begin — initialisation du package
HAUT := O ;
end PILE ;
Instanciation d’une pile — pile booléenne
package PREMIERE_PILE is new PILE(50, Boolean) ; — pile entière
Package SECONDE_PILE is new PILE(100, Integer);
?Introduction
?Historique
?ADA
?Utilisation d’ADA aujourd’hui
?Objet et limites du cours
?Éléments de base du langage
?Package
?Type
?Structure de contrôle
?Fonction et procédure
?Autres
?Éléments temps réel
?Objet tâche et type tâche
?Gestion du temps
?Synchronisation directe par rendez vous
?Synchronisation sélective
?Objet protégé
?Avortement