À la base des ordinateurs et de leurs programmes se trouvent les langages de programmation, ces lignes de code à l’aspect étrange qui vous font probablement mal à la tête rien qu’en les regardant. Mais que sont les langages de programmation et comment fonctionnent-ils ?
Sommaire
Que sont les langages de programmation ?
En résumé, un langage de programmation est la manière dont un programmeur informatique « parle » à un appareil. Si vous savez « parler » l’un de ces langages (il en existe des centaines), vous pouvez créer un programme capable d’exécuter des tâches. Celles-ci peuvent aller du plus simple, comme un script qui déplace un fichier d’un endroit à un autre, au plus complexe, comme le rendu d’un monde en 3D dans un jeu vidéo.
Les langages de programmation sont la raison pour laquelle nous pouvons faire des choses complexes avec les ordinateurs. À la base, les ordinateurs fonctionnent toujours sur un système binaire – également appelé langage machine – dans lequel les zéros et les uns déterminent ce que l’ordinateur fait, et comment. On peut considérer les langages de programmation comme une couche au-dessus de ce noyau, de sorte que les humains n’ont pas besoin de passer des zéros aux uns et vice-versa.
C’est une très bonne chose : si nous devions encore utiliser le binaire pour programmer, il faudrait beaucoup de temps pour créer ne serait-ce qu’un simple script. Les programmes avancés ne seraient probablement jamais réalisés, car il faudrait une armée de personnes pour mettre tous les uns et les zéros dans le bon palais. Les langages de programmation, bien qu’ils soient délicats à apprendre et à utiliser, sont essentiellement des dispositifs permettant d’économiser du travail.
3 façons d’accéder à vos partitions Linux depuis Windows
Niveaux de langage
Grosso modo, les langages de programmation se divisent en deux catégories : les langages de bas niveau et les langages de haut niveau. Les langages de bas niveau sont appelés ainsi car ils sont « proches » de la machine, ils peuvent lui parler directement. Cela inclut le langage machine et les langages d’assemblage, qui sont des langages de programmation qui ne sont que peu éloignés du binaire.
Les langages de haut niveau sont un cran au-dessus des langages de bas niveau. Ils sont plus éloignés de la machine, mais sont lisibles par les humains. Dans ce cas, « lisible » signifie que si vous connaissez le langage en question, vous pouvez regarder quelques lignes de code et comprendre ce qui se passe. Cela fonctionne également dans l’autre sens : vous pouvez taper des commandes qui seront ensuite exécutées par la machine.
La parole interprétée
Cela dit, il convient de noter que la programmation n’est pas aussi directe que cela. Lorsque vous tapez des commandes dans un langage de haut niveau, vous ne dites pas à un appareil ce qu’il doit faire. Au lieu de cela, vous vous adressez à ce que l’on appelle un interprète, un programme qui fait partie du langage et qui transforme une commande en binaire. Vous dites à l’interprète ce que vous voulez, et il dit à son tour à l’ordinateur ce que vous avez dit, mais en langage machine.
L’interprète fait le lien entre vous et la machine, et chaque langue a un interprète différent. Les langages d’assemblage sont un peu étranges car leurs commandes doivent également être interprétées, mais ils utilisent ce qu’on appelle un assembleur au lieu d’un interprète car leurs commandes sont plus proches du langage machine « pur » et n’ont donc pas besoin d’une traduction complète.
L’interpréteur est un élément technique délicat : il faut lui parler d’une certaine manière pour qu’il puisse faire son travail et dire à l’ordinateur comment déplacer les zéros et les uns. Au lieu de dire « faites en sorte que la boîte bleue aille en haut à droite », nous devons entrer une ligne de code que l’interprète comprend et qui varie selon le langage de programmation. L’interpréteur prend alors cette entrée et dit à l’ordinateur ce qu’il doit faire.
Le langage naturel étant trop difficile à comprendre pour les ordinateurs et les interprètes – ce qui pourrait changer avec la révolution du « no-code » – nous utilisons des langages de programmation, des langages compréhensibles par les interprètes comme par les humains. L’interprète le relaie ensuite en langage machine, créant ainsi une petite chaîne de marguerites.
Comment fonctionnent les langages de programmation
Le choix du mot « langage » n’est pas non plus le fruit du hasard : tout comme les langues humaines, les langages de programmation ont des règles internes qui empêchent tout dérapage.
Un langage de programmation possède une syntaxe, un ensemble de règles concernant l’ordre et l’utilisation des mots, tout comme dans une langue humaine. Par exemple, en anglais, vous pouvez dire « Gary a donné un livre à Fred ». Dans cette phrase, vous savez exactement qui a donné quoi et à qui ; changez les mots et vous obtenez une phrase différente : « Fred a donné un livre à Gary. » Cette phrase a toujours un sens, mais si vous dites « un livre à Gary que Fred a donné », nous avons un problème sur les bras.
Les langages de programmation ne sont pas différents : les bons éléments doivent être placés aux bons endroits pour qu’une phrase – généralement appelée « ligne » – ait un sens. C’est juste que les langages de programmation utilisent des moyens différents pour s’exprimer.
Se débrouiller
Certains éléments sont identiques : de nombreux langages de programmation utilisent des verbes, par exemple. En Python, qui est généralement considéré comme l’un des langages les plus faciles à apprendre, vous pouvez lui demander d’imprimer une ligne de texte.
Dans ce cas, les mots « Hello, world » apparaîtront à l’écran. Naturellement, les commandes peuvent être beaucoup plus compliquées que cela ; la plupart des langues disposent d’un vaste ensemble de verbes qui peuvent être utilisés pour effectuer toutes sortes d’actions.
Bien sûr, tout n’est pas aussi logique au premier coup d’œil : la plupart des codes que vous rencontrerez comportent une quantité folle de symboles et de signes de ponctuation que vous n’utiliseriez pas dans votre vie quotidienne. Cependant, une fois que vous les avez compris, ils sont moins bizarres que vous ne le pensez.
Dans le langage humain, nous pouvons utiliser différents mots pour désigner différentes choses. En anglais, par exemple, nous désignons les objets par « it » et les personnes par « she » ou « he ». Si vous intervertissez ces mots, une phrase s’effondre. Les langages de programmation ne sont pas très différents : les crochets et les parenthèses désignent simplement différentes classes d’actions. Il suffit de les intervertir pour que la phrase s’effondre.
Naturellement, ces éléments peuvent également changer d’un langage à l’autre : une parenthèse en Python a une fonction complètement différente de celle qu’elle a en Lisp, qui est encore différent du C. Tout comme dans les langues humaines, l’utilisation et la signification peuvent changer, ce qui rend certains langages plus performants que d’autres.
Quel langage de programmation faut-il apprendre ?
Alors, quel est le meilleur langage pour commencer à apprendre ? Les fans de différents langages se disputent beaucoup – et vraiment beaucoup – sur ce que chaque langage peut ou ne peut pas faire et sur le meilleur. Mais le résultat est que le meilleur langage dépend vraiment du programmeur en question. Tout comme pour les langues humaines, votre opinion est influencée par vos schémas de pensée et ce qui a naturellement du sens pour vous.
Si vous voulez être l’un des rares à pouvoir « parler » aux machines et à leur faire faire ce que vous voulez, vous pouvez vous tourner vers Python, qui a la réputation d’être facile à apprendre. Si vous souhaitez relever un défi plus important, vous pouvez choisir le langage C, qui constitue la base de la plupart des systèmes d’exploitation. Quel que soit votre choix, il est très amusant de commencer à penser comme un programmeur.