Aller au contenu

« Paramètre (programmation informatique) » : différence entre les versions

Un article de Wikipédia, l'encyclopédie libre.
Contenu supprimé Contenu ajouté
m →‎Paramètres et typage : Orthographe
Pautard (discuter | contributions)
m partie intégrante
 
(40 versions intermédiaires par 34 utilisateurs non affichées)
Ligne 1 : Ligne 1 :
{{Voir homonymes|Paramètre (homonymie)}}
{{Autre|d'autres significations|Paramètre (homonymie)}}


En [[programmation informatique]], un '''paramètre''' est une donnée manipulée par une section de [[code source|code]] (voir : [[sous-programme]], [[Fonction informatique|fonction]], [[Méthode (informatique)|méthode]]) et connue du code appelant cette section.
{{Wiktionnaire}}
Un '''paramètre''' est au sens large un élément d'information à prendre en compte pour prendre une décision ou pour effectuer un calcul.


== Informatique ==
==En mémoire ==


On distingue deux types de paramètres.
En [[informatique]], un ''paramètre'' est une donnée manipulée par une section de [[code source|code]] (voir : [[sous-programme]], [[fonction (informatique)|fonction]], [[Méthode (informatique)|méthode]]) et connue du code appelant cette section.

On distingue deux types de paramètres :
* les paramètres d'entrée ;
* les paramètres de sortie.


===Les paramètres d'entrée===
Un paramètre d'entrée est une donnée fournie par le code appelant au code appelé. Cette donnée peut être transmise de deux façons :
Un paramètre d'entrée est une donnée fournie par le code appelant au code appelé. Cette donnée peut être transmise de deux façons :
* passage par copie (aussi appelé par valeur) : le code appelé dispose d'une copie de la valeur. Il peut la modifier, l'information initiale dans le code appelant n'est pas affectée par ces modifications.
* passage par copie (aussi appelé par valeur) : le code appelé dispose d'une copie de la valeur qu'il peut modifier sans affecter l'information initiale dans le code appelant ;
* passage par adresse (aussi appelé par référence): le code appelé dispose d'une information lui permettant d'accéder en mémoire à la valeur que le code appelant cherche à lui transmettre. Il peut alors modifier cette valeur là où elle se trouve, le code appelant aura accès aux modifications faites sur la valeur. Dans ce cas, le paramètre peut aussi être utilisé comme un paramètre de sortie.
* passage par [[Adresse mémoire|adresse]] (aussi appelé par [[Référence (informatique)|référence]]) : le code appelé dispose d'une information lui permettant d'accéder en mémoire à la valeur que le code appelant cherche à lui transmettre. Il peut alors modifier cette valeur là où elle se trouve ; le code appelant aura accès aux modifications faites sur la valeur. Dans ce cas, le paramètre peut aussi être utilisé comme un paramètre de sortie.


===Les paramètres de sortie===
Un paramètre de sortie est une donnée fournie par le code appelé au code appelant. Dans certains [[langage de programmation|langages de programmation]], il n'est pas possible de définir de paramètres de sortie autrement qu'en utilisant un paramètre d'entrée par son adresse. D'autres langages de programmation (comme le [[langage Pascal|Pascal]] par exemple) obligent le programmeur à spécifier explicitement si un paramètre est d'entrée, de sortie ou d'entrée-sortie.
Un paramètre de sortie est une donnée fournie par le code appelé au code appelant. Dans certains [[Langage de programmation|langages de programmation]], il n'est pas possible de définir de paramètres de sortie autrement qu'en utilisant un paramètre d'entrée par son adresse. D'autres langages de programmation (comme le [[Pascal (langage)|Pascal]]) obligent le programmeur à spécifier explicitement si un paramètre est d'entrée, de sortie ou d'entrée-sortie.


==Catégories de paramètres==
=== Paramètre formel ===


Les paramètres sont désignés différemment selon leur emplacement dans le code source.
Il s'agit de la variable utilisée dans le corps du sous-programme.


=== Paramètre effectif ===
===Paramètre formel===
On parle aussi d'argument muet. Il s'agit de la variable utilisée dans le corps de la [[Routine (informatique)|routine]].


===Paramètre effectif===
Il s'agit de la variable (ou valeur) fournie lors de l'appel du sous-programme.
Il s'agit de la variable (ou valeur) fournie lors de l'appel du sous-programme.
Certains langages, comme [[Perl 6]], utilisent le terme ''paramètre'' pour paramètre formel et ''argument'' pour
Certains langages, comme [[Perl 6]], utilisent le terme ''paramètre'' pour paramètre formel et ''argument'' pour paramètre effectif.
paramètre effectif.


=== Paramètre positionnel ===
===Paramètre positionnel===
Une variable dont le nom est un numéro. Par exemple, en programmation [[shell (informatique)|shell]] [[UNIX]], le premier paramètre d'un [[Langage de script|script]] s'appelle <code>$1</code>, le deuxième <code>$2</code> et ainsi de suite. En [[traitement par lots]] (''batch''), les fichiers fournis en paramètre sont aussi désignés par <code>%1</code> (qu'il est préférable de noter entre guillemets). <!-- Euh… Est-ce un paramètre positionnel ? Votre définition laisse à désirer… -->


L'expression ''paramètre positionnel'' peut qualifier un paramètre effectif qui est reconnu par sa position mais dont le nom de la variable associée reste celui du paramètre formel. En Perl 6, les paramètres formels positionnels finaux peuvent être déclarés comme optionnels.
Une variable dont le nom est un numéro. Par exemple, en programmation [[shell (informatique)|shell]] [[UNIX]], le premier paramètre d'un [[Langage de script|script]] s'appelle $1, le deuxième $2 et ainsi de suite.
''Paramètre positionnel'' peut signifier un paramètre effectif qui est reconnu par sa position mais dont le nom
de la variable associée reste celui du paramètre formel.
Dans certains langages comme Perl 6, les paramètres formels positionnels finaux peuvent déclarés comme
optionnels.


=== Paramètre nommé ===
===Paramètre nommé===
Contrairement aux paramètres positionnels, les paramètres nommés impliquent que chaque paramètre formel correspondant comprenne non simplement la valeur, mais aussi le nom.
L'[[Objective C]] dispose d'un mécanisme proche de celui des paramètres nommés. Il s'agit en fait d'un nom de fonction composite et le passage de paramètre est bien un passage positionnel.


==Tableau et table associative de trop plein==
Contrairement aux paramètres positionnels, les paramètres nommés impliquent que chaque paramètre formel correspondant comprend non simplement la valeur, mais aussi le nom.
L'[[Objective C]] a un mécanisme qui ressemble à celui de paramètres nommés. Il s'agit en fait d'un nom de fonction composite et le passage de paramètre est bien un passage positionnel.


Il se peut que les paramètres effectifs (positionnels ou nommés) soient trop nombreux. Dans la plupart des langages, ce serait une erreur. Certains langages fournissent des paramètres formels implicites pour ce trop plein.
=== Tableau et table associative de trop plein ===


En [[Perl (langage)|Perl 5]], un tableau appelé <code>@_</code> est utilisé. C'est même le seul mécanisme de réception de paramètres effectifs. En Perl 6, les variables de trop plein viennent en complément des paramètres positionnels et nommés <code>@_</code> est le nom [[Valeur par défaut|par défaut]] du tableau de trop plein et <code>%_</code> le nom par défaut de la table associative de trop plein.
Il se peut que les paramètres effectifs (positionnels ou nommés) soient trop nombreux. Dans la plupart des langages ce serait une erreur. Certains langages fournissent des paramètres formels implicites pour ce trop plein.
En Perl 5, un tableau appelé <code>@_</code> est utilisé. c'est même le seul mécanisme de reception de paramètres effectifs En [[Perl 6]], les variables de trop plein viennent en complément des paramètres positionnels et nommés
<code>@_</code> est le nom par défaut du tableau de trop plein et <code>%_</code> le nom par défaut de la table associative de trop plein.
Notez que l'existence de <code>@_</code> fait que le système de passage de paramètres en Perl 6 est une extension du système de Perl 5.
Notez que l'existence de <code>@_</code> fait que le système de passage de paramètres en Perl 6 est une extension du système de Perl 5.
Notez que le trop plein n'est pas une forme de gestion d'erreurs mais une partie intégrale de la richesse du mécanisme de paramètre de Perl 6.
Notez aussi que le trop plein n'est pas une forme de gestion d'erreurs mais une partie intégrante de la richesse du mécanisme de paramètre de Perl 6.


D'autres langages, comme le [[C++]], permettent d'indiquer des valeurs par défaut à attribuer aux paramètres formels lors de la déclaration des fonctions. Cela permet d'éviter de les réécrire s'ils sont équivalents à chaque fois. En [[C (langage)|C]], on peut utiliser les [[Macro-définition|macros]] pour abréger l'écriture.
=== Manipulations complexes de paramètres ===

Pour regrouper les paramètres, on peut aussi utiliser un [[Tableau (structure de données)|tableau]] ou une [[Structure de données|structure]].

==Manipulations complexes de paramètres==


On voudrait quelquefois que tout ou partie d'un tableau fasse partie des paramètres positionnels formels.
On voudrait quelquefois que tout ou partie d'un tableau fasse partie des paramètres positionnels formels.
C'est possible en Perl 6.
C'est possible en Perl 6.


=== Paramètres et typage ===
== Paramètres et typage ==


Le typage des paramètres formels, supporté ou requis par certains langages, permet selon le cas de vérifier à la compilation ou à l'exécution le [[type (informatique)|type]]
Le typage des paramètres formels, supporté ou requis par certains langages, permet selon le cas de vérifier, à la compilation ou à l'exécution, le [[Type (informatique)|type]] des paramètres effectifs, et de susciter une erreur ou une exception si un des paramètres effectifs n'est pas du type attendu.
{{Article connexe|Typage dynamique|Typage statique}}
des paramètres effectifs et de susciter une erreur ou une exception un des paramètres effectifs n'est pas du type attendu.
Voir [[typage dynamique]] et [[typage statique]] pour plus d'information.


On appelle signature la liste des types des paramètres formels d'une fonctions ou méthode.
On appelle signature la liste des types des paramètres formels d'une fonctions ou méthode.
Plusieurs signatures peuvent être attachées au même nom de fonction ou de méthode. En d'autre termes plusieurs fonctions ou méthodes peuvent avoir
Plusieurs signatures peuvent être attachées au même nom de fonction ou de méthode. En d'autres termes, plusieurs fonctions ou méthodes peuvent avoir le même nom mais sont distinguées par les types de leurs paramètres formels.
Les paramètres effectifs permettront de déterminer quel est la signature la plus proche selon une [[Métrique (mathématiques)|métrique]] qui dépend du langage utilisé. Ce mécanisme qui consiste à choisir la bonne fonction ou méthode selon la signature et les paramètres formels s'appelle le [[dispatch multiple]].
le même nom mais sont distinguées par les types de leurs paramètres formels.
Les paramètres effectifs permettront de déterminer quel est la signature
la plus proche selon une [[Métrique (mathématiques)|métrique]] qui dépend du langage utilisé. Ce mécanisme qui consiste à choisir la bonne fonction
ou méthode selon la signature et les paramètre formels s'appelle le [[dispatch multiple]]


Finalement une méthode ou fonction peut être partiellement abstraite par l'utilisation d'un type générique pour l'un de ces arguments formels, on parle alors de [[généricité]]. Si le corps de la méthode ou fonction est défini, on parle de [[Polymorphisme (informatique)#Polymorphisme paramétré|polymorphisme paramétré]], sinon de [[Polymorphisme (informatique)#Polymorphisme par sous-typage (dérivation)|polymorphisme par sous-typage]] .
Finalement, une méthode ou fonction peut être partiellement abstraite par l'utilisation d'un type générique pour l'un de ces arguments formels : on parle alors de [[généricité]]. Si le corps de la méthode ou fonction est défini, on parle de [[Polymorphisme (informatique)#Polymorphisme paramétré|polymorphisme paramétré]] ou de [[Polymorphisme (informatique)#Polymorphisme par sous-typage (héritage)|polymorphisme par sous-typage]].


== Mathématiques ==
== Notes et références ==
{{Références}}
{{…}}


{{Palette|Programmation informatique}}
* Les [[Espace vectoriel|espace]]s et sous-espaces de l'algèbre linéaire sont décrits par un certain nombre de paramètres, nombre qui est relié à la [[dimension]].
{{Portail|programmation informatique}}
* De même les objets de la géométrie différentielle ([[courbe]]s, [[surface]]s) peuvent être décrits par un [[paramétrage]] faisant intervenir un nombre adéquat de paramètres indépendants.
* En [[relativité générale]], un [[paramètre affine]] est la quantité utilisée pour indexer les différents points suivis par une trajectoire soumise uniquement aux forces de [[gravitation]], appelée [[géodésique]].

{{Palette programmation informatique}}

{{Portail|mathématiques|informatique|programmation informatique}}


[[Catégorie:Programmation informatique]]
[[Catégorie:Programmation informatique]]
[[Catégorie:Vocabulaire des mathématiques]]

[[ar:قيمة وسيطة]]
[[de:Parameter (Mathematik)]]
[[en:Parameter]]
[[eo:Parametro]]
[[eu:Parametro (estatistika)]]
[[gd:Paraimeatair]]
[[he:פרמטר]]
[[hi:प्राचल]]
[[io:Parametro]]
[[it:Parametro (statistica)]]
[[ja:媒介変数]]
[[ko:매개변수]]
[[nl:Parameter]]
[[nn:Parameter]]
[[no:Parameter]]
[[qu:Kuskanachina tupu]]
[[ru:Параметр]]
[[simple:Parameter]]
[[sk:Parameter]]
[[sr:Параметар]]
[[su:Paraméter]]
[[sv:Parameter]]
[[uk:Параметр]]
[[vi:Tham số]]

Dernière version du 21 janvier 2024 à 13:28

En programmation informatique, un paramètre est une donnée manipulée par une section de code (voir : sous-programme, fonction, méthode) et connue du code appelant cette section.

En mémoire

[modifier | modifier le code]

On distingue deux types de paramètres.

Les paramètres d'entrée

[modifier | modifier le code]

Un paramètre d'entrée est une donnée fournie par le code appelant au code appelé. Cette donnée peut être transmise de deux façons :

  • passage par copie (aussi appelé par valeur) : le code appelé dispose d'une copie de la valeur qu'il peut modifier sans affecter l'information initiale dans le code appelant ;
  • passage par adresse (aussi appelé par référence) : le code appelé dispose d'une information lui permettant d'accéder en mémoire à la valeur que le code appelant cherche à lui transmettre. Il peut alors modifier cette valeur là où elle se trouve ; le code appelant aura accès aux modifications faites sur la valeur. Dans ce cas, le paramètre peut aussi être utilisé comme un paramètre de sortie.

Les paramètres de sortie

[modifier | modifier le code]

Un paramètre de sortie est une donnée fournie par le code appelé au code appelant. Dans certains langages de programmation, il n'est pas possible de définir de paramètres de sortie autrement qu'en utilisant un paramètre d'entrée par son adresse. D'autres langages de programmation (comme le Pascal) obligent le programmeur à spécifier explicitement si un paramètre est d'entrée, de sortie ou d'entrée-sortie.

Catégories de paramètres

[modifier | modifier le code]

Les paramètres sont désignés différemment selon leur emplacement dans le code source.

Paramètre formel

[modifier | modifier le code]

On parle aussi d'argument muet. Il s'agit de la variable utilisée dans le corps de la routine.

Paramètre effectif

[modifier | modifier le code]

Il s'agit de la variable (ou valeur) fournie lors de l'appel du sous-programme. Certains langages, comme Perl 6, utilisent le terme paramètre pour paramètre formel et argument pour paramètre effectif.

Paramètre positionnel

[modifier | modifier le code]

Une variable dont le nom est un numéro. Par exemple, en programmation shell UNIX, le premier paramètre d'un script s'appelle $1, le deuxième $2 et ainsi de suite. En traitement par lots (batch), les fichiers fournis en paramètre sont aussi désignés par %1 (qu'il est préférable de noter entre guillemets).

L'expression paramètre positionnel peut qualifier un paramètre effectif qui est reconnu par sa position mais dont le nom de la variable associée reste celui du paramètre formel. En Perl 6, les paramètres formels positionnels finaux peuvent être déclarés comme optionnels.

Paramètre nommé

[modifier | modifier le code]

Contrairement aux paramètres positionnels, les paramètres nommés impliquent que chaque paramètre formel correspondant comprenne non simplement la valeur, mais aussi le nom. L'Objective C dispose d'un mécanisme proche de celui des paramètres nommés. Il s'agit en fait d'un nom de fonction composite et le passage de paramètre est bien un passage positionnel.

Tableau et table associative de trop plein

[modifier | modifier le code]

Il se peut que les paramètres effectifs (positionnels ou nommés) soient trop nombreux. Dans la plupart des langages, ce serait une erreur. Certains langages fournissent des paramètres formels implicites pour ce trop plein.

En Perl 5, un tableau appelé @_ est utilisé. C'est même le seul mécanisme de réception de paramètres effectifs. En Perl 6, les variables de trop plein viennent en complément des paramètres positionnels et nommés @_ est le nom par défaut du tableau de trop plein et %_ le nom par défaut de la table associative de trop plein. Notez que l'existence de @_ fait que le système de passage de paramètres en Perl 6 est une extension du système de Perl 5. Notez aussi que le trop plein n'est pas une forme de gestion d'erreurs mais une partie intégrante de la richesse du mécanisme de paramètre de Perl 6.

D'autres langages, comme le C++, permettent d'indiquer des valeurs par défaut à attribuer aux paramètres formels lors de la déclaration des fonctions. Cela permet d'éviter de les réécrire s'ils sont équivalents à chaque fois. En C, on peut utiliser les macros pour abréger l'écriture.

Pour regrouper les paramètres, on peut aussi utiliser un tableau ou une structure.

Manipulations complexes de paramètres

[modifier | modifier le code]

On voudrait quelquefois que tout ou partie d'un tableau fasse partie des paramètres positionnels formels. C'est possible en Perl 6.

Paramètres et typage

[modifier | modifier le code]

Le typage des paramètres formels, supporté ou requis par certains langages, permet selon le cas de vérifier, à la compilation ou à l'exécution, le type des paramètres effectifs, et de susciter une erreur ou une exception si un des paramètres effectifs n'est pas du type attendu.

On appelle signature la liste des types des paramètres formels d'une fonctions ou méthode. Plusieurs signatures peuvent être attachées au même nom de fonction ou de méthode. En d'autres termes, plusieurs fonctions ou méthodes peuvent avoir le même nom mais sont distinguées par les types de leurs paramètres formels. Les paramètres effectifs permettront de déterminer quel est la signature la plus proche selon une métrique qui dépend du langage utilisé. Ce mécanisme qui consiste à choisir la bonne fonction ou méthode selon la signature et les paramètres formels s'appelle le dispatch multiple.

Finalement, une méthode ou fonction peut être partiellement abstraite par l'utilisation d'un type générique pour l'un de ces arguments formels : on parle alors de généricité. Si le corps de la méthode ou fonction est défini, on parle de polymorphisme paramétré ou de polymorphisme par sous-typage.

Notes et références

[modifier | modifier le code]