« Informatique au lycée/Programmation et langages » : différence entre les versions

Contenu supprimé Contenu ajouté
m Robot : Remplacement de texte automatisé (-\n(==={0,3})(?: *)([^\n=]+)(?: *)\1(?: *)\n +\n\1 \2 \1\n)
m Robot : remplacement de texte automatisé (-(<|</)source([ \t>]) +\1syntaxhighlight\2)
Ligne 25 :
On distingue aujourd’hui cinq générations de langages.
La '''première génération''' est le langage machine, ou code machine. On parle aussi de langage natif. Il est composé d'instructions et de données à traiter codées en binaire. C'est le seul langage qu'un ordinateur peut traiter directement. Voici à quoi peut ressembler un programme en langage machine :
<sourcesyntaxhighlight lang="bash">
A1 01 10 03 06 01 12 A3 01 14
</syntaxhighlight>
</source>
 
Il s'agit de la représentation hexadécimale d'un programme permettant d'additionner les valeurs de deux cases mémoire et de stocker le résultat dans une troisième case. On voit immédiatement la difficulté d'un tel langage.
Ligne 33 :
La '''deuxième génération''' est le langage assembleur : le code devient lisible et compréhensible par un plus grand nombre d'initiés. Il existe en fait un langage assembleur par type de processeur.
Le programme précédent écrit en assembleur donnerait ceci :
<sourcesyntaxhighlight lang="asm">
MOV AX, [0110]
ADD AX, [0112]
MOV [0114], AX
</syntaxhighlight>
</source>
Il reste utilisé dans le cadre d'optimisations, mais a été supplanté en popularité par les langages plus accessibles de troisième génération.
 
Ligne 47 :
 
La '''cinquième génération''' de langages sont des langages destinés à résoudre des problèmes à l'aide de contraintes, et non d'algorithmes écrits. Ces langages reposent beaucoup sur la logique et sont particulièrement utilisés en intelligence artificielle. Parmi les plus connus, on trouve [[w:Prolog|Prolog]], dont voici un exemple :
<sourcesyntaxhighlight lang="prolog">
frère_ou_soeur(X,Y) :- parent(Z,X), parent(Z,Y), X \= Y.
parent(X,Y) :- père(X,Y).
Ligne 55 :
père(tom, erica).
père(mike, tom).
</syntaxhighlight>
</source>
Il en résulte que la demande suivante est évaluée comme vraie :
<sourcesyntaxhighlight lang="prolog">
?- frère_ou_soeur(sally, erica).
oui.
</syntaxhighlight>
</source>
Ce qui signifie que Sally et Erica sont sœurs. En effet, Sally et Erica ont le même père (Tom).
 
Ligne 71 :
 
==== Ada ====
<sourcesyntaxhighlight lang="ada">
with Ada.Text_IO;
use Ada.Text_IO;
Ligne 78 :
Put("Hello world!");
end Bonjour;
</syntaxhighlight>
</source>
==== Assembleur X86 sous DOS ====
<sourcesyntaxhighlight lang="asm">
cseg segment
assume cs:cseg, ds:cseg
Ligne 95 :
cseg ends
end main
</syntaxhighlight>
</source>
==== BASIC ====
<sourcesyntaxhighlight lang="basic4gl">
10 PRINT "Hello world!"
20 END
</syntaxhighlight>
</source>
==== C ====
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
 
Ligne 110 :
return 0;
}
</syntaxhighlight>
</source>
==== C++ ====
<sourcesyntaxhighlight lang="cpp">
#include <iostream>
 
Ligne 120 :
return 0;
}
</syntaxhighlight>
</source>
==== FORTRAN 77 ====
<sourcesyntaxhighlight lang="fortran">
PROGRAM BONJOUR
WRITE (*,*) 'Hello world!'
END
</syntaxhighlight>
</source>
==== Java ====
<sourcesyntaxhighlight lang="java">
public class HelloWorld {
public static void main(String[] args) {
Ligne 134 :
}
}
</syntaxhighlight>
</source>
==== Javascript ====
<sourcesyntaxhighlight lang="javascript">
document.write("Hello world!");
</syntaxhighlight>
</source>
 
==== Python 1 et 2 ====
<sourcesyntaxhighlight lang="python">
print "Hello world!"
</syntaxhighlight>
</source>
==== Python 3 ====
<sourcesyntaxhighlight lang="python">
print("Hello world!")
</syntaxhighlight>
</source>
 
== La machine de Turing ==