langage
Définition
Les cinq "générations" de langage sont bien délimitées, mais ne correspondent pas complètement à une évolution historique, mais plutôt à une évolution vers l'abstraction. Elles ne concernent que les langages de programmation généralistes, disposant de structures de contrôle, et non les langages de description de pages (PCL, Postscript, UIL, etc) ou de structures de données (SQL DDL), ou de requêtes de données (SQL DML)
- 1° génération: langage machine
- 2° génération: assembleurs, macro-assembleurs
- 3° génération: langages de programmation impérative, séquentiels, simples, structurés ou à objets, génériques ou de scripting. C'est la famille la plus fournie, dont le représentant archétypal est Algol, et qui comprend Ada, Basic, Fortran, C, C++, Cobol, ECMAScript, Java, Javascript, Jovial, LISP, Objective C, Pascal, Perl, PHP, PL/1, Simula et la plupart des langages usuels et interpréteurs de commande (shells) des systèmes d'exploitation. Cette terminologie n'est toutefois pas habituellement appliquée aux langages de scripting, même lorsque leur structure les classe ainsi.
- 4° génération: langages de manipulation de données, à contrôle événementiel et non séquentiel. Ceux-ci appartiennent fréquemment à des univers de manipulation de données, notamment dans les outils RAD de traitement de bases de données, dans lesquels ils fournissent les structures de contrôle encapsulant SQL.
- 5° génération: langages pour la programmation logique et le calcul propositionnel, à logique non séquentielle et non événementielle (Prolog).
Une controverse possible sur l'appartenance de LISP à la 3° ou à la 5° génération, comme le fait que la 5° génération est pour l'essentiel disparue depuis le milieu des années 90 alors que les 3° et 4° sont très dynamiques, illustre les limites de cette classification.