Langage de programmation

Fragment de code écrit dans le langage de programmation JavaScript.

En informatique, un langage de programmation est une notation conventionnelle destinée à formuler des algorithmes et produire des programmes informatiques qui les appliquent. D'une manière similaire à une langue naturelle, un langage de programmation est composé d'un alphabet, d'un vocabulaire, de règles de grammaire et de significations [1], [2].

Les langages de programmation permettent de décrire d'une part les structures des données qui seront manipulées par l'appareil informatique, et d'autre part d'indiquer comment sont effectuées les manipulations, selon quels algorithmes. Ils servent de moyens de communication par lesquels le programmeur communique avec l'ordinateur, mais aussi avec d'autres programmeurs ; les programmes étant d'ordinaire écrits, lus, compris et modifiés par une équipe de programmeurs [3].

Un langage de programmation est mis en œuvre par un traducteur automatique : compilateur ou interprète. Un compilateur est un programme informatique qui transforme dans un premier temps un code source écrit dans un langage de programmation donné en un code cible qui pourra être directement exécuté par un ordinateur, à savoir un programme en langage machine ou en code intermédiaire [2], tandis que l’interprète réalise cette traduction « à la volée ».

Les langages de programmation offrent différentes possibilités d' abstraction, et une notation proche de l' algèbre, permettant de décrire de manière concise et facile à saisir les opérations de manipulation de données et l'évolution du déroulement du programme en fonction des situations. La possibilité d'écriture abstraite libère l'esprit du programmeur d'un travail superflu, notamment de prise en compte des spécificités du matériel informatique, et lui permet ainsi de se concentrer sur des problèmes plus avancés [2].

Chaque langage de programmation supporte une ou plusieurs approches de la programmation – paradigmes. Les notions induisant le paradigme font partie du langage de programmation et permettent au programmeur d'exprimer dans le langage une solution qui a été imaginée selon ce paradigme.

Les premiers langages de programmation ont été créés dans les années 1950 en même temps que l'avènement des ordinateurs. Cependant de nombreux concepts de programmation ont été initiés par un langage ou parfois plusieurs langages, avant d'être améliorés puis étendus dans les langages suivants. La plupart du temps la conception d'un langage de programmation a été fortement influencée par l'expérience acquise avec les langages précédents [4].

Définition

Un langage de programmation est construit à partir d'une grammaire formelle, qui inclut des symboles et des règles syntaxiques, auxquels on associe des règles sémantiques. Ces éléments sont plus ou moins complexes selon la capacité du langage. Les modes de fonctionnement et de définition de la complexité d'un langage de programmation sont généralement déterminés par leur appartenance à l'un des degrés de la Hiérarchie de Chomsky [réf. nécessaire].

Sous un angle théorique, tout langage informatique peut être qualifié de langage de programmation s'il est Turing-complet c'est-à-dire qu'il permet de représenter toutes les fonctions calculables au sens de Turing et Church (en admettant néanmoins pour exception à la théorie que la mémoire des ordinateurs n'est pas un espace infini) [5].

Les règles de syntaxe
Définies par une grammaire formelle, elles régissent les différentes manières dont les éléments du langage peuvent être combinés pour obtenir des programmes [2]. La ponctuation (par exemple l'apposition d'un symbole ; en fin de ligne d'instruction d'un programme) relève de la syntaxe.
Le vocabulaire
Parmi les éléments du langage, le vocabulaire représente l'ensemble des instructions construites d’après des symboles. L'instruction peut être mnémotechnique ou uniquement symbolique comme quand elle est représentée par des symboles d'opérations tels que des opérateurs arithmétiques (« + » et « - ») ou booléens (&& pour le et logique par exemple). On parle aussi parfois de mot clé pour désigner une instruction (par abus de langage car le concept de mot clé ne recouvre pas celui des symboles qui font pourtant eux aussi partie du vocabulaire).
La sémantique
Les règles de sémantique définissent le sens de chacune des phrases qui peuvent être construites dans le langage, en particulier quels seront les effets de la phrase lors de l'exécution du programme [2]. La science l’étudiant est la sémantique des langages de programmation.
L’alphabet
L'alphabet des langages de programmation est basé sur les normes courantes comme ASCII, qui comporte les lettres de A à Z sans accent, des chiffres et des symboles [6], ou Unicode pour la plupart des langages modernes (dans lesquels l'utilisation se limite en général aux chaînes de caractères littérales et aux commentaires, avec quelques exceptions notables comme C♯ qui autorisent également les identifiants unicode).

La plupart des langages de programmation peuvent prévoir des éléments de structure complémentaires, des méthodes procédurales, et des définitions temporaires et variables et des identifiants:

Les commentaires
Les commentaires sont des textes qui ne seront pas traduits. Ils peuvent être ajoutés dans les programmes pour y laisser des explications. Les commentaires sont délimités par des marques qui diffèrent d'un langage de programmation à l'autre tel que « -- », « /* » ou « // » [6].
Les identifiants
Les éléments constitutifs du programme, tels que les variables, les procédures, ou les types servent à organiser le programme et son fonctionnement. On peut ainsi, par exemple, diviser un programme en fonctions, ou lui donner une structure par objets : ces éléments de structure sont définis par des identifiants ou des procédures par mot clé selon le langage.
Other Languages
Afrikaans: Programmeertaal
Alemannisch: Programmiersprache
العربية: لغة برمجة
žemaitėška: Pruogramavėma kalba
беларуская (тарашкевіца)‎: Мова праграмаваньня
brezhoneg: Yezh programmiñ
ᨅᨔ ᨕᨘᨁᨗ: ᨅᨔ ᨀᨚᨇᨘᨈᨛᨑᨛ
Mìng-dĕ̤ng-ngṳ̄: Piĕng-tiàng ngṳ̄-ngiòng
Esperanto: Programlingvo
עברית: שפת תכנות
Bahasa Indonesia: Bahasa pemrograman
íslenska: Forritunarmál
la .lojban.: samplabau
Basa Jawa: Basa pamrograman
ភាសាខ្មែរ: ភាសាកម្មវិធី
Lëtzebuergesch: Programméiersprooch
македонски: Програмски јазик
Bahasa Melayu: Bahasa pengaturcaraan
မြန်မာဘာသာ: Programming language
Plattdüütsch: Programmeerspraak
Nederlands: Programmeertaal
norsk nynorsk: Programmeringsspråk
русиньскый: Язык проґрамованя
srpskohrvatski / српскохрватски: Programski jezik
Simple English: Programming language
slovenčina: Programovací jazyk
slovenščina: Programski jezik
српски / srpski: Програмски језик
Basa Sunda: Basa program
svenska: Programspråk
татарча/tatarça: Программалау теле
oʻzbekcha/ўзбекча: Programmalash tili
Tiếng Việt: Ngôn ngữ lập trình
中文: 编程语言
Bân-lâm-gú: Thêng-sek gí-giân
粵語: 程式語言