Programmation JavaScript/Références
Programmation/Procédures et fonctions
Les termes procédure et fonction désignent tous deux des sous-programmes.
Un sous-programme est constitué, comme un programme, d'une suite d'instructions.
Cette suite d'instructions réalise une fonction simple ou complexe, utilisée généralement à divers endroit du code du programme principal.
Programme sans sous-programme.
Pour présenter l'intérêt d'utiliser un sous-programme, voici un exemple de code :
 prix : RÉEL
 quantité : ENTIER
 total_ttc : RÉEL = 0.00
 tva : RÉEL = 19.60
 -- achat de 3 articles à 10,50€ HT chacun
 prix ← 10.50
 quantité ← 3
 total_ttc ← total_ttc + tva * ( prix * quantité )
 -- achat de 2 articles à 21,30€ HT chacun
 prix ← 21.30
 quantité ← 2
 total_ttc ← total_ttc + tva * ( prix * quantité )
 -- achat d'1 article à 2,40€ HT
 prix ← 2.40
 quantité ← 1
 total_ttc ← total_ttc + tva * ( prix * quantité )
Pour les 3 achats de l'exemple, le calcul est répété à chaque fois. Ce qui n'est pas pratique pour la maintenance du code : si la formule n'est pas la bonne (une erreur est toujours possible) ou si la formule doit être modifiée (autre mode de calcul), il faudra changer le code en plusieurs endroits pour un même type de calcul.
Une procédure.
Le premier intérêt d'utiliser un sous-programme est de regrouper le code commun et éviter d'avoir plusieurs endroits du code à modifier pour un seul changement d'algorithme, de formule, ...
L'exemple utilisant une procédure devient :
 total_ttc : RÉEL = 0.00
 tva : RÉEL = 19.60
 DÉBUT PROCEDURE acheter(prix: RÉEL , quantité : ENTIER)
 total_ttc ← total_ttc + tva * ( prix * quantité )
 FIN
 acheter(10.50, 3) -- achat de 3 articles à 10,50€ HT chacun
 acheter(21.30, 2) -- achat de 2 articles à 21,30€ HT chacun
 acheter(2.40, 1) -- achat d'1 article à 2,40€ HT
Cette deuxième version du code est beaucoup plus claire que la première : les détails du calcul ont été déplacés dans une procédure nommée "codice_1" à deux arguments :
L'utilisation d'un sous-programme permet donc de clarifier ce que fait le programme, sans s'encombrer des détails de l'algorithme utilisé pour effectuer l'action voulue.
Une fonction.
L'exemple précédent modifie une variable globale nommée codice_2. Ce qui s'appelle un effet de bord : un effet qui ne dépend pas que des paramètres d'entrée (codice_3 et codice_4 dans l'exemple).
Dans un tel cas, il est préférable d'utiliser une fonction. Une fonction permet de retourner une valeur au programme appelant.
Dans le cas présent, la fonction calcule le prix TTC pour l'achat d'une certaine quantité d'articles, et le retourne au programme appelant. Celui-ci utilise le prix TTC retourné pour l'ajouter au total :
 tva : RÉEL = 19.60
 DÉBUT FONCTION pric_ttc(prix: RÉEL , quantité : ENTIER)
 RETOURNE tva * ( prix * quantité )
 FIN
 total_ttc : RÉEL = 0.00
 total_ttc ← total_ttc + pric_ttc(10.50, 3) -- achat de 3 articles à 10,50€ HT chacun
 total_ttc ← total_ttc + pric_ttc(21.30, 2) -- achat de 2 articles à 21,30€ HT chacun
 total_ttc ← total_ttc + pric_ttc(2.40, 1) -- achat d'1 article à 2,40€ HT

Programmation/Entrées-sorties
Les fonctions d'entrées-sorties sont des fonctions de l'API du langage de programmation permettant de réaliser des entrées (lecture de données) et des sorties (écriture de données) depuis / vers un flux d'entrée-sortie (console, fichier, socket, ...).
Par exemple :
Interactions avec l'utilisateur.
C'est pour faciliter les entrées et les sorties de données que des interfaces sont programmées. Elles doivent être simples et lisibles.

Programmation/Programmation concurrente
Tous les systèmes d'exploitation actuels sont multi-tâches : Ils permettent l'exécution "en parallèle" de plusieurs applications : lancer un traitement de texte tout en écoutant sa musique préférée.
Au sein de la même application (ou programme), plusieurs tâches peuvent également s'effectuer "en parallèle" :
"En parallèle".
En fait, les tâches ne sont pas exécutées en parallèle, à moins que la machine possède plusieurs processeurs. Le système d'exploitation accorde à chaque tâche lancée un peu de temps de processeur pour s'exécuter. Une fois ce temps écoulé, il donne du temps à une autre tâche, etc. La durée et l'attribution du temps dépend du système d'exploitation et de la priorité attribuée à chaque tâche (priorité pouvant évoluer dans le temps). Si le système dispose de plusieurs processeurs, ceux-ci travaillent en parallèle pour exécuter plus d'une tâche à la fois.
Exemple de tâches :
 Tâche 1: Tâche 2:
 A ← B + 1 C ← "Exemple"
Et un exemple d'ordre d'exécution :
 Temps Tâche 1: Tâche 2:
 t tmp ← B + 1
 t+1 C ← "Exemple"
 t+2 A ← tmp

Programmation/Surcharge
La surcharge consiste à créer plusieurs fonctions portant le même nom car réalisant la même chose, mais ayant une signature différente afin que le compilateur/interpréteur du langage puisse les distinguer.
Dans ce qui suit, le terme "fonction" peut désigner indifféremment fonction ou procédure.
La signature d'une fonction.
La signature d'une fonction est ce qui permet à un compilateur ou interpréteur d'identifier une fonction pour la distinguer d'une autre.
Certains langages de programmation n'autorisent pas que deux fonctions portent le même nom, car celui-ci identifie la fonction.
Pour ces langages, la signature d'une fonction correspond donc à son nom seul.
Les langages de programmation objet autorisent plusieurs fonctions a porter le même nom, à condition que la liste des types des paramètres acceptés soit différente. La signature correspond donc au nom de la fonction et à la liste des types des paramètres de cette fonction.
Exemple :
 afficher(valeur : ENTIER)
 afficher(valeur : RÉEL)
 afficher(chaine : CHAINE)
 afficher(valeur : RÉEL, nombre_de_décimales : ENTIER)
Lors de l'appel à la fonction "afficher", le compilateur ou l'interpréteur distingue laquelle il doit utiliser d'après le type des arguments.
Exemple :
 afficher( "Exemple" ) -- appel à afficher(chaine : CHAINE)
 afficher( 5.1 ) -- appel à afficher(valeur : RÉEL)

Tribologie/Guidage par roulement/Lubrification des roulements