java
Pour executer un algorithme sur un ordinateur, il faut le traduire dans un langage de programmation: decrire de maniere non ambigue les
etapes de calcul a eectuer par le processeur.
Historiquement, sont apparus d'abord des langages bas niveau: code
ecrit directement en langage machine, avec les operations du processeur.
Programmes peu lisibles.
Portabilite tres limitee (reecrire pour changer d'ordinateur)
Seul avantage (?): le programmeur contr^ole tout ce qui se passe
Langages de programmations
Pour executer un algorithme sur un ordinateur, il faut le traduire dans un langage de programmation: decrire de maniere non ambigue les
etapes de calcul a eectuer par le processeur.
Historiquement, sont apparus d'abord des langages bas niveau: code
ecrit directement en langage machine, avec les operations du processeur.
Programmes peu lisibles.
Portabilite tres limitee (reecrire pour changer d'ordinateur)
Seul avantage (?): le programmeur contr^ole tout ce qui se passe
Aujourd'hui on utilise plus couramment des langages haut niveau: le code tend a ressembler a la description de l'algorithme, il est compile ou interprete par un programme pour ^etre execute par le processeur.
Langages plus expressifs, automatisation de la gestion de la memoire ) programmation plus aisee, plus sure.
Ecacite en progres grace a l'amelioration des interpreteurs/compilateurs Meilleure portabilite
Interpretation vs compilation
Que faire avec un programme ecrit dans un langage haut niveau ?
Interpreter: traduction et execution a la volee des instructions par exemple: un script interprete par un shell (interpreteur)
+ execution directe par le processeur
Compiler:
{ en langage machine: production d'un executable "natif" par ex. programme C!executable
{ dans un langage intermediaire bas niveau: production de bytecode bytecode java interprete par une JVM