Programmes
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.
Objectif
Comprendre la différence entre un algorithme et un programme.
Mise en situation
L'algorithme et le programme sont deux choses distinctes. En effet les algorithmes existent depuis des milliers d'années, et sont simplement des suites d'opérations qui permettent de résoudre un problème, exactement comme une recette de cuisine. Les programmes, eux, sont beaucoup plus récents car ce sont les implémentations informatiques d'algorithme, pour permettre leur résolution par un ordinateur. Selon le paradigme ou le langage utilisé, les implémentations d'un même algorithme peuvent être différentes et offrir des performances qui ne sont pas les mêmes. C'est donc un choix qu'il est important de faire avant de se lancer dans l'écriture d'un programme.
Définition : Programme
Un programme est la traduction en code exécutable d'un algorithme. On parle également d'implémentation d'un algorithme. Ainsi pour un algorithme donné, il existe plusieurs implémentations. Les choix d'implémentation peuvent différer d'un langage à un autre ou au sein d'un même langage.
Niveau de traduction
Un programme peut être vu à deux niveaux : le code du programmeur et le langage machine. En effet, le code du programmeur sera traduit par un compilateur ou un interpréteur qui rendront les instructions exécutables par la machine. Le code est dit « haut-niveau » car il est proche de l'écriture littérale de l'instruction mais incompréhensible en tant que tel pour la machine. Le langage machine est bien moins compréhensible pour un être humain mais la machine pourra l’exécuter car ce sont des instructions en binaire.
Paradigme de programmation
Les langages de programmation peuvent être classés en plusieurs catégories nommées paradigmes. Ces catégories dépendent des caractéristiques du langage et de sa manière d'aborder la résolution d'un problème. Les paradigmes les plus connus sont : impératif, fonctionnel, logique, etc.
Exemple : Langages impératifs
Les langages impératifs sont les plus connus et les plus répandus car ils ont un fonctionnement très proche de l'algorithmie classique. On peut citer :
C/C++
Python
Javascript
Java
PHP
Exemple : Comparaison de deux implémentations
Voici l'implémentation du calcul de la suite de Fibonacci en Python puis en JavaScript. On voit que la syntaxe diffère mais également certaines instructions. Par exemple, Python parcourt les éléments d'une liste un à un, alors que JavaScript passe par un indice représentant le numéro de case.
"""Python : Suite de Fibonacci. """
n = int(input("Entrer un entier supérieur à 1:"))
fibo = [0]*(n+1)
fibo[0] = 0
fibo[1] = 1
for i in range(2,n+1):
fibo[i] = fibo[i-1] + fibo[i-2]
for number in fibo:
print(number)
/** JavaScript : Suite de Fibonacci. */
const n = Number(prompt('Entrer un entier supérieur à 1:'))
var fibo = new Array(n + 1)
fibo[0] = 0
fibo[1] = 1
for (let i = 2; i < n + 1; i++) {
fibo[i] = fibo[i - 1] + fibo[i - 2]
}
for (let i = 0; i < n + 1; i++) {
console.log(fibo[i])
}
Complément : Choisir un langage et un paradigme
Les paradigmes et les langages ayant chacun leurs spécificités, il faut choisir un langage non pas parce qu'il est connu du développeur mais parce qu'il permettra de répondre au mieux au problème posé.
Par exemple pour de l'informatique embarquée, il faut favoriser le C/C++ car ce sont des langages très rapides et demandant moins de puissances.
En revanche pour du Machine Learning, le Python rend l'utilisation des algorithmes très simples pour le programmeur (au détriment d'une légère baisse de performance par rapport au C/C++).
À retenir
Un programme est la traduction d'un algorithme à l'aide d'un langage de programmation.
Selon le langage et son paradigme, la traduction ne sera pas toujours identique.
Impossible d'accéder à la ressource audio ou vidéo à l'adresse :
La ressource n'est plus disponible ou vous n'êtes pas autorisé à y accéder. Veuillez vérifier votre accès puis recharger la vidéo.