Programmation/Langages de programmation

Un livre de Wikilivres.

On distingue six générations de langages de programmation. Les langages des générations 1 et 2 sont appelés langages de bas niveau (orienté machine) alors que les langages des générations 3 à 6 sont appelés langages de haut niveau (orienté problème). Les langages de haut niveau sont indépendants du processeur ce qui n’est pas le cas des langages de bas niveau.

Bas niveau[modifier | modifier le wikicode]

Génération 1[modifier | modifier le wikicode]

  • Langage machine dépendant du processeur
  • Suite d’instructions binaires directement introduites (programmation directe) dans la mémoire du processeur
  • Les instructions du processeur sont appelées code opérationnel

Code opérationnel- Intel pentium- Motorola 6800

Exemple pour un processeur 8086 :

BD 41 00
BE 65 41
01 D8
38 47 03

La programmation de la machine par un humain à ce niveau nécessite d'avoir le manuel du processeur. Les erreurs de frappe arrivent facilement.

Génération 2[modifier | modifier le wikicode]

  • Même jeu d’instructions que le langage machine, mais sous forme symbolique (mnémoniques) plus compréhensible pour l’homme
  • Les instructions sont converties (programmation indirecte) en langage machine par un programme (assembleur)

Exemple pour un processeur 8086 :

MOV BP,41h
MOV SI,4165h
ADD AX,BX
CMP [BX+3],AL

Les langages assembleurs plus évolués permettent d'utiliser des commentaires et possèdent des fonctionnalités facilitant la vie du développeur, lui évitant des calculs manuels et des erreurs potentielles. Par exemple, il est possible de définir un symbole/nom/label représentant l'adresse où se trouve la déclaration puis l'utiliser directement comme opérande (adresse de saut ou adresse de l'emplacement d'une donnée) dans les instructions à la place d'une adresse calculée manuellement.

Haut niveau[modifier | modifier le wikicode]

Génération 3[modifier | modifier le wikicode]

  • Langages indépendants du processeur
  • Proches des langues parlées (anglais)
  • Langages procéduraux, descriptions des opérations à effectuer pour résoudre un problème.

Les premiers langages de programmation étaient écrits sur des cartes perforées. Celles-ci ne permettaient pas de coder les lettres en minuscules, ce qui explique que les mots-clés des premiers langages de programmation soient en capitales (Fortran, COBOL, Basic, Pascal).

Langages : C, Pascal, Fortran (Formula Translation), Cobol (Common Business Oriented Language), Basic, Wlangage

Génération 4[modifier | modifier le wikicode]

  • Langages descriptifs
  • Description de ce que l’on désire faire mais pas de la manière de le faire
  • Très fortement lié à un domaine (base de données, tables de calcul)

Langages : Uniface, Informix, Oracle, Lotus

Génération 5[modifier | modifier le wikicode]

  • Langages descriptifs pour la programmation de systèmes experts

Langages : Prolog

Génération 6[modifier | modifier le wikicode]

  • Orienté objet
  • Toutes les informations nécessaires à la résolution d’un problème sont réunies dans un objet

Langages : Ada, C++, C#, Delphi, Eiffel, Java, Object Pascal, PHP, Python, Smalltalk

Références[modifier | modifier le wikicode]