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

m
Robot : remplacement de texte automatisé (-(<|</)source([ \t>]) +\1syntaxhighlight\2)
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))
 
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.
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.
 
 
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).
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).
 
 
==== Ada ====
<sourcesyntaxhighlight lang="ada">
with Ada.Text_IO;
use Ada.Text_IO;
Put("Hello world!");
end Bonjour;
</syntaxhighlight>
</source>
==== Assembleur X86 sous DOS ====
<sourcesyntaxhighlight lang="asm">
cseg segment
assume cs:cseg, ds:cseg
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>
 
return 0;
}
</syntaxhighlight>
</source>
==== C++ ====
<sourcesyntaxhighlight lang="cpp">
#include <iostream>
 
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) {
}
}
</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 ==
143 371

modifications