Terminologie

Impératif, déclaratif, fonctionnel, typage, stricte…. des mots que l’on rencontre souvent dans la programmation. Qu’y a t’il derrière ces mots? Cet article n’a pas pour prétention d’être très exhaustif ni très précis mais juste d’apporter des précisions sur certains concepts de la programmation.

Impératif

Un langage de programmation impératif est un langage qui met l’accent sur les opérations à réaliser pour résoudre un problème ou obtenir un résultat. Pour ce faire, on réalise une série de changements d’états (affectations) dans un ordre donné pour obtenir ce que l’on souhaite. La séquence dans laquelle on exécute les instructions a une grande importance. Dans un langage impératif, on décrit le COMMENT Les langages impératifs les plus courants sont : C,C++,Pascal,Fortran,Python,Java, …

Déclaratif

Un langage de programmation déclaratif est un langage qui met l’accent sur le résultat à obtenir et non sur la méthode. L’implémentation étant laissée au compilateur. La séquence dans laquelle on effectue les déclarations a peu voir plus du tout d’importance (comparé à l’impératif). Dans un langage déclaratif, on décrit le QUOI Quelques langages déclaratifs : Haskell, LISP, Erlang, OCaml, SQL, …

Orienté objet

Un langage de programmation orienté objet est un langage qui regroupe différentes fonctions associées à un même concept dans un appelé : OBJET. A ces objets on associe généralement les concepts de classes, d’héritage, de polymorphisme, etc … Les langages qui mettent en avant ce type de programmation permettent d’organiser et de structurer le programme de manière plus précise. Les langages à objets les plus courants sont : C++, Python, Java, …

Classe

Une classe est une catégorie d’objets qui possèdent des propriétés communes. Elle associe a ces objets un ensemble de méthodes (fonctions) qui leurs sont applicables et des variables (attributs). Exemple : Camion, Voiture et Moto peuvent faire partie de la même classe : Véhicule et avoir les variables : Puissance Année de fabrication Nombre de kilomètre … et les fonctions Valeur à l’argus. …

Héritage

L’héritage est un mécanisme permettant de transmettre les méthodes et attributs d’une classe (mère) à une classe qui en dérive. Cette nouvelle classe (fille) peut alors réutiliser les méthodes et attributs de la classe mère. Il est généralement possible de paramétrer et de limiter l’héritage grâce a des niveaux Publique, Privé, Protégé.

Fonctionnel

Un langage de programmation fonctionnel est un langage qui se base sur les fonctions (au sens mathématique) pour résoudre un problème.

Évaluation paresseuse (ou évaluation retardée)

L’ évaluation paresseuse est une technique permettant de n’évaluer un résultat que si il est nécessaire. Cela permet d’optimiser les temps de calcul en ne réalisant que les opérations qui sont réellement nécessaires.

Typage fort

Un langage fortement typé est un langage qui interdit les conversions implicites de données. Chaque donnée possède un type … et un seul ! Ils permettent de détecter facilement les erreurs de typage pendant la compilation du programme et d’éviter des problèmes pendant l’exécution. Quelques langages plutôt typés forts : Python, Java, OCaml, Haskell, …

Typage faible

Un langage faiblement typé est un langage qui convertit automatiquement le type des données. Une donnée peut avoir plusieurs types suivant le contexte. Quelques langages plutôt typés faibles : Perl, BASH, …

Inférence de type

L’inférence de type est un mécanisme de certains langages de programmation qui permet de le type des données utilisées par le programme sans avoir besoin de les indiquer dans le code source. Cette spécificité permet de simplifier le code source, d’apporter plus de sécurité au niveau du typage, …