Blog ENI : Toute la veille numérique !
🐠 -25€ dès 75€ 
+ 7 jours d'accès à la Bibliothèque Numérique ENI. Cliquez ici
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
  1. Livres et vidéos
  2. Machine Learning et Deep Learning
  3. Les langages de programmation
Extrait - Machine Learning et Deep Learning Des bases à la conception avancée d'algorithmes (exemples en Python et en JavaScript)
Extraits du livre
Machine Learning et Deep Learning Des bases à la conception avancée d'algorithmes (exemples en Python et en JavaScript)
1 avis
Revenir à la page d'achat du livre

Les langages de programmation

Le binaire et le programmeur

Pour écrire des algorithmes pour un ordinateur (on dit également coder ou programmer), on utilise un langage de programmation. Un langage de programmation est un ensemble de règles et de mots qui sont compris par des ordinateurs et qui leur décrivent une liste de tâches à effectuer, c’est-à-dire un algorithme. On peut tout à fait faire l’analogie avec le langage naturel, qui comprend des mots (verbe, nom…) et des règles (ponctuation, conjugaison, grammaire…). Chaque langue naturelle ayant ses propres règles et son vocabulaire, on peut en dire autant des langages informatiques. De même qu’il existe des familles de langues naturelles (afro-asiatiques, nigéro-congolaises, indo-européennes...), il existe également des familles de langages informatiques. On parle de paradigmes de programmation. Parmi les paradigmes les plus connus, on peut citer la programmation impérative, la programmation orientée objet, la programmation déclarative et la programmation événementielle (nous reviendrons sur ces paradigmes dans le chapitre Les fonctions et la programmation orientée objet. Si tous utilisent les briques conceptuelles que sont les variables, les conditions, les boucles et les fonctions (voir le chapitre L’histoire de l’algorithme), ils se distinguent dans la façon de les utiliser ou alors ils ajoutent de nouveaux concepts (héritage, polymorphisme…).

La "langue" que parle un ordinateur est appelée le binaire (ou langage machine). D’ailleurs, les ordinateurs ne parlent et ne comprennent que le binaire. C’est un système de numération en base deux, ce qui signifie qu’il ne contient que deux caractères qu’on appelle bit : 0 et 1. La base 10 est celle que nous utilisons couramment pour compter de 0 à 9, ce qui fait 10 caractères. La base 16, appelée hexadécimale, contient 16 valeurs différentes. Voici un tableau qui récapitule les nombres dans les trois bases énoncées :

Base 2 (binaire)

Base 10 (décimale)

Base 16 (hexadécimale)

0

0

0

1

1

1

10

2

2

11

3

3

100

4

4

101

5

5

110

6

6

111

7

7

1000

8

8

1001

9

9

1010

10

A

1011

11

B

1100

12

C

1101

13

D

1110

14

E

1111

15

F

10000

16

10

10001...

Du binaire aux langages de programmation

images/02RI03.png

Il existe de très nombreux langages de programmation. Le schéma ci-avant donne des exemples de langages de programmation par niveau. En réalité, cette classification dépend du point de vue duquel on se place. En effet, si on compare le langage C au langage Python, on classe le C parmi les langages de bas niveau, et Python, plus récent, parmi les langages de haut niveau. Mais si l’on compare C au binaire, C se retrouve surclassé parmi les langages de haut niveau. Plus un langage est de haut niveau, plus il intègre des mécanismes qui nous dispensent de tout le travail fastidieux que nécessiterait la programmation en langage binaire. Parmi ces mécanismes, on peut citer la génération de bytecode. Il s’agit d’un langage intermédiaire entre les langages de programmation et le langage binaire. Il permet de réduire la dépendance vis-à-vis du processeur, de sorte que le programme peut fonctionner sur des processeurs différents. Le langage de plus haut niveau qui existe est le langage humain (quelle que soit la langue) et il est compris par le processeur le plus perfectionné qui existe : le cerveau.

Plus un langage est de haut niveau, plus il automatise des tâches, qui ne sont donc plus à la charge du programmeur. Néanmoins, un programme écrit dans un langage de plus bas niveau est le plus souvent plus rapide à exécuter que son équivalent écrit dans un langage de haut niveau. La perte de vitesse des langages de haut niveau par rapport aux langages plus de bas niveau est compensée par la puissance des processeurs qui ne cesse d’augmenter conformément à la loi de Moore. Gordon Moore a cofondé de la société Intel en 1968. Cette entreprise est connue pour fabriquer des microprocesseurs. C’est d’ailleurs Intel qui a fabriqué le tout premier microprocesseur. Moore prévoyait en 1965 que le nombre de transistors des microprocesseurs sur une puce de silicium (un des matériaux de base des processeurs, d’où le nom de Silicon Valley) doublerait tous les deux ans et que cette situation aurait un effet direct sur les performances des ordinateurs. En effet, plus le processeur d’un ordinateur a de transistors, plus...

Le bon et le mauvais programmeur

Un algorithme peut être meilleur qu’un autre, de la même façon qu’un itinéraire pour se rendre à un rendez-vous est meilleur qu’un autre, en fonction du critère que l’on met derrière le mot "meilleur".

Bon ou mauvais programmeurs, tous écrivent des algorithmes et codent.

Le mauvais programmeur a tendance à se lancer tête baissée dans la programmation, enchaînant les lignes de code pour arriver plus ou moins péniblement à un résultat. Ils parvient parfois à faire de petits programmes très simples, mais en bloquant régulièrement sur des problèmes de logique d’algorithmique et en contournant les problèmes par des méthodes pour le moins biscornues. Son approche pourrait se résumer ainsi : l’essentiel, c’est que ça marche.

Le bon programmeur, lui, pense stratégie, méthode et architecture. Il a pris le temps d’acquérir une bonne maîtrise de l’algorithmique au travers de livres, d’une pratique régulière ou d’une formation, pour venir à bout des pièges classiques de la programmation. Il se demande quel algorithme utiliser, pourquoi et comment. Il réfléchit au problème posé pour en avoir une vue d’ensemble et essaie de le décortiquer...

Organigramme et pseudo-code

Un organigramme (parfois appelé algorigramme ou logigramme) est un schéma permettant de décrire un algorithme de manière claire, simple et idéalement concise. Il a une forme normalisée pour permettre à quasiment n’importe qui, même un non-programmeur, de comprendre l’objectif visé par l’algorithme. Un exemple d’organigramme est le schéma de l’organisation hiérarchique d’une entreprise.

Voici un exemple d’organigramme qui montre un algorithme dont le but est d’envoyer un robot dans une épicerie pour acheter au moins dix amuse-bouches.

images/p37.png

L’organigramme, qui se lit de haut en bas, commence par "DÉBUT" et se termine par "FIN". Chaque rectangle est une zone d’instructions qui indique ce que le programme (ici, le robot) doit faire. Tant que le nombre X d’amuse-bouches n’est pas atteint, le robot achète 1 amuse-bouche. Si le nombre est atteint, c’est-à-dire si la condition "Si le nombre d’amuse-bouches >= 10" est vraie, le programme se poursuit en se dirigeant vers la ’’FIN’’.

L’inconvénient de l’organigramme est qu’il prend de la place, surtout quand le programme est complexe et contient beaucoup d’instructions. Il implique également l’utilisation...

Python et JavaScript

Proposer les langages Python et JavaScript ne signifie pas qu’ils sont les meilleurs du monde, ni qu’ils sont les meilleurs pour débuter. Il s’agit d’une réponse possible à une question complexe. Nous avons opté pour des langages de haut niveau pour que vous puissiez vous concentrer sur la création de programmes sans avoir à rentrer dans des détails d’implémentation des langages de bas niveau. En plus d’être de haut niveau, JavaScript et Python sont des langages généralistes, ce qui permet de créer à peu près tout ce que l’on peut imaginer (sites web, jeux vidéo, logiciels…). Dans ce qui suit, nous présentons ces deux langages de manière succincte en donnant quelques arguments justifiant leur choix.

Créé en 1995 par l’américain Brendan Eich, le langage LiveScript, appelé plus tard JavaScript, est un langage de script (ce qui signifie qu’il est interprété) utilisé pour rendre les pages web interactives en manipulant le DOM (Document Object Model), c’est-à-dire l’ensemble des éléments contenus dans une page web. Parmi les trois langages informatiques qui s’utilisent sur un navigateur web, c’est le seul qui soit un langage de programmation. Les deux autres, HTML et CSS, sont...