avec Ada pour les arguments de procedures deux mot clés sont utiliser : in et out
avec in:
l'argument est constant.
l'argument est passé sur le stack si il tient dans un registre du processeur (int, double, float,...) sinon il seras passé par référence.
avec out:
l'argument est variable mais ne peux etre lu seulement apres que la procédure aie assigné une valeur sinon le compilateur produis une erreur. (ex:une fonction qui initialise un objet)
avec in out:
l'argument est variable et peux être lu sans conditions.
avec OUT et IN OUT, l'argument est passer par référence de facto.
si aucun mot clés est spécifié c'est IN qui est utilisé par défaut.
ex: https://gist.github.com/8a8a6563eb7233da7e30