Ecrivez-nous

Accueil
Informatique et Télécommunication
Annales
Livres
Logiciels
programmation, langage de
1 PRÉSENTATION

programmation, langage de, langage informatique composé d’une série d’instructions pouvant être interprétées et exécutées par un ordinateur. Ces instructions se composent de caractères, de symboles, et de règles permettant de les assembler.

2 TRADUCTION D’UN LANGAGE

Un ordinateur représente toutes les informations (programmes et données) par des suites de « 0 » et de « 1 » (forme binaire). Néanmoins, pour qu’un programme puisse être exécuté, il est nécessaire que les instructions qui le composent soient comprises par le processeur. L’ensemble des instructions comprises et directement exécutables par le processeur forme ce que l’on appelle le langage machine. Ce processus de conversion du code source (instructions écrites dans un langage manipulable par un opérateur humain) en code objet (assimilable par l’ordinateur) est assuré par un programme capable de traduire un jeu de symboles en un autre, par application de règles de syntaxe et de sémantique. Suivant la nature du langage de programmation employé et du processus de traduction, ce programme s’appelle un compilateur ou un interpréteur. Un interpréteur traduit et exécute en même temps, alors qu’un compilateur produit soit un fichier exécutable si le code source est correct, soit un rapport sur l’ensemble des erreurs constatées.

2.1 Langages compilés

Les langages compilés sont des langages où toutes les instructions sont traduites en code objet avant d’être exécutées. Cette conversion s’effectue au moyen d’un compilateur (voir compilation).

2.2 Langages interprétés

Les langages interprétés sont des langages décodés et exécutés instruction par instruction lors de l’exécution du programme, à l’aide d’un programme appelé interpréteur.

3 NIVEAU D’UN LANGAGE

Il existe différents types de langages, allant du plus rudimentaire au plus complexe, que l’on classe généralement en deux familles : les langages de bas niveau et les langages évolués. On y ajoute parfois une autre catégorie, les langages de quatrième génération.

3.1 Langages de bas niveau

Les langages de bas niveau sont des langages proches du langage machine ou des langages offrant peu d’instructions et de types de données. En général, chaque instruction écrite dans un langage de bas niveau correspond à une instruction machine. Le langage machine et le langage assembleur sont considérés comme des langages de bas niveau.

3.1.1 Langage machine

Le langage machine représente le langage dans lequel s’exprime le résultat final d’une compilation de langage assembleur ou d’un langage de haut niveau quelconque. Constitué de « 0 » et de « 1 », ce langage est chargé et exécuté par le microprocesseur. Appelé également code machine, il constitue le seul langage réellement « compris » par l’ordinateur, tous les autres langages correspondant à des formes de structuration du langage humain.

3.1.2 Langage assembleur

Le langage assembleur est un langage de programmation de bas niveau, où chaque instruction correspond à une instruction machine unique. Le jeu d’instructions d’un tel langage est donc associé à un certain type de processeur. Ainsi, les programmes écrits en langage assembleur pour un processeur particulier doivent être réécrits pour tourner sur un ordinateur équipé d’un processeur différent. Après écriture d’un programme en langage assembleur, le programmeur fait alors appel à l’assembleur spécifique du processeur, qui traduit ce programme en instructions machine. Le langage assembleur peut être préféré à un langage de haut niveau lorsque le programmeur recherche une vitesse d’exécution élevée ou un contrôle étroit de la machine. En effet, les programmes écrits dans ce type de langage tournent plus vite et occupent moins de place que ceux produits par un compilateur. En outre, ils donnent au programmeur la possibilité d’agir directement sur le matériel (processeur, mémoire, affichage et connexion d’entrées / sorties).

3.2 Langages évolués

Les langages évolués, dits aussi de haut niveau ou de troisième génération, sont des langages informatiques offrant un certain niveau d’abstraction par rapport au langage machine, et manipulant des structures syntaxiques telles que les déclarations, les instructions de contrôle, etc. Usuellement, le terme « évolué » désigne tout langage de niveau supérieur à celui du langage assembleur.

Les langages évolués sont classés en trois grandes familles : les langages procéduraux, les langages orientés-objets et les langages orientés-listes. On retrouve ainsi dans la famille des langages procéduraux : le FORTRAN, le COBOL, le BASIC, l’Ada, le PASCAL et le C, dans la famille des langages orientés-objets : le C++ et le Java, et dans la famille des langages orientés-listes : le LISP.

3.2.1 Langages procéduraux

Les langages procéduraux sont des langages où la procédure (suite d’instructions) constitue l’élément de base. La plupart des langages évolués sont des langages procéduraux.

3.2.1.1 Langage FORTRAN

Premier langage de programmation de haut niveau, le FORTRAN (acronyme de FORmula TRANslation) a été développé entre 1954 et 1958 par John Backus d’IBM. Il est à l’origine de nombreux concepts avancés, tels que les variables, les expressions, les instructions, les sous-programmes compilés séparément et les entrées / sorties formatées. Langage compilé et structuré, le FORTRAN a été créé pour être appliqué aux domaines scientifiques et techniques. Malgré de nombreuses et récentes améliorations, le FORTRAN est de moins en moins utilisé.

3.2.1.2 Langage COBOL

Acronyme de COmmon Business-Oriented Language, le COBOL est un langage compilé proche de l’anglais, développé entre 1959 et 1961. Officialisé par le département américain de la Défense, dont il a été un temps le langage obligatoire, il demeure employé, tout particulièrement dans les applications de gestion. Les programmes écrits en COBOL comportent quatre sections : le champ Identification, qui fournit le nom du programme et celui de l’auteur, ainsi que toutes les informations annexes que ce dernier estime nécessaires ; le champ Environment, qui indique le modèle d’ordinateur cible, ainsi que les fichiers utilisés en entrée comme en sortie ; le champ Data, qui décrit les données traitées par le programme ; et enfin le champ Procedure, qui contient l’ensemble des sous-programmes définissant les actions du programme.

3.2.1.3 Langage BASIC

Acronyme de Beginner’s All-purpose Symbolic Instruction Code, le langage BASIC est un langage de programmation de haut niveau, développé vers le milieu des années 1960 au Dartmouth College par John Kemeny et Thomas Kurtz. L’énorme succès de ce langage est dû à deux de ses versions, Tiny BASIC et Microsoft BASIC, grâce auxquelles le BASIC est devenu la lingua franca de la micro-informatique. Mais il existe également d’autres versions importantes de ce langage : Integer BASIC et Applesoft BASIC (Apple), GW-BASIC (IBM), QuickBASIC ou Visual Basic qui intègre la gestion d’interfaces (Microsoft). Le langage BASIC a ainsi évolué au fil des années, passant d’une forme non structurée et interprétée à des versions structurées et compilées.

3.2.1.4 Langage Ada

Le langage Ada tire son nom d’Augusta Ada Byron, fille de lord Byron et assistante de Charles Babbage, illustre précurseur de l’informatique. Ce langage procédural, conçu par l’informaticien français Jean Ichbiah selon les normes édictées par le ministère de la Défense des États-Unis dans les années 1970, était destiné à devenir le langage de développement principal des applications de cet organisme. Dérivé du Pascal, il possède d’importantes extensions sémantiques et syntaxiques, comprenant en particulier l’exécution concurrente de tâches, les opérateurs à fonction multiple et le découpage en modules. Bien que manipulant des objets, le langage Ada n’est pas considéré comme un langage orienté-objet.

3.2.1.5 Langage Pascal

Mis au point entre 1967 et 1971 par Niklaus Wirth, le langage Pascal est un langage structuré et compilé, dérivé du langage ALGOL. Destiné à traiter des données informatiques, il simplifie la syntaxe d’ALGOL tout en y ajoutant des types et des structures de données supplémentaires, tels que les types énumérés, les fichiers, les enregistrements et les ensembles.

Bien que le Pascal soit un langage résolument procédural qui excelle dans la réalisation d’applications mathématiques, il existe également une version de Pascal orientée-objet, utilisée aussi dans le développement d’applications. Il est souvent enseigné aux étudiants en raison de sa programmation efficace et très structurée.

3.2.1.6 Langage C

Succédant au langage B (d’où son nom), le langage C a été développé en 1972 par Dennis Ritchie dans les laboratoires Bell de la société AT&T. Bien que le langage C s’apparente à un langage assembleur indépendant de la machine plutôt qu’à un langage de haut niveau, il peut cependant être considéré comme un langage de programmation standard, en raison de sa grande popularité, de son association avec le système d’exploitation UNIX et de sa normalisation par l’ANSI (American National Standards Institute). Excepté quelques fonctions natives, le langage C est doté de fonctions indépendantes de la machine, contenues dans des bibliothèques auxquelles peut accéder tout programme écrit en C.

3.2.2 Langages orientés-objets

Les langages orientés-objets sont des langages adaptés à la programmation orientée-objet, type de programmation où chaque programme est considéré comme un ensemble d’objets distincts, ces objets constituant eux-mêmes des ensembles de structures de données et de procédures intégrées. Dans de tels langages, chaque objet appartient à une classe qui définit les structures de données et les procédures associées à cet objet. Le premier langage à introduire les notions d’objet et de classe a été SIMULA, développé en 1967 par Dahl, Mayrhaug et Nygaard à Oslo. Aujourd’hui, les langages orientés-objets, comme C++, Java, OBJECTPASCAL, OBJECTIF-C, EIFFEL ou SMALLTALK, sont devenus les outils des développeurs.

3.2.2.1 Langage C++

Le langage C++, version orientée-objet du langage de programmation C, a été développé par Bjarne Stroustrup dans les laboratoires Bell (AT&T) au début des années 1980, puis adopté par certains constructeurs tels qu’Apple Computer ou Sun Microsystems. Assimilé d’un côté à une extension du langage C, mais considéré de l’autre comme un langage doté d’une approche objet (il reprend de SIMULA l’essentiel de sa partie objet), le langage C++ s’impose aujourd’hui, grâce à ses fonctions très puissantes, comme le langage de référence de développement de programmes.

3.2.3 Langages orientés-listes

Les langages orientés-listes peuvent être apparentés aux langages orientés-objets, à la différence près qu’ils manipulent non pas des objets mais des listes, c’est-à-dire des structures de données multi-éléments à organisation linéaire.

3.2.3.1 Langage LISP

Sigle de LISt Processing, LISP est un langage de programmation orienté-liste, développé vers 1960 par John McCarthy au MIT (Massachusetts Institute of Technology), et utilisé principalement pour manipuler des listes de données. En rupture complète avec les langages procéduraux de l’époque, LISP est un langage interprété dans lequel chaque expression représente une liste d’appels à des fonctions. Toujours fréquemment utilisé dans les milieux universitaires, LISP a longtemps été considéré comme un standard en intelligence artificielle, même si, depuis quelques années, le langage Prolog commence à revendiquer la même position.

3.2.3.2 Langage Prolog

Acronyme de PROgramming in LOGic, Prolog est un langage conçu par Alain Colmerauer et Robert Kowalsky dans les années 1970, le premier compilateur ayant été développé en 1972 à l’université d’Aix-Marseille par Philippe Roussel. Conçu à l’origine pour la programmation logique, ce langage s’est depuis largement répandu dans le domaine de l’intelligence artificielle. Prolog est un langage compilé fonctionnant sur des relations logiques entre données, plutôt que sur des relations mathématiques.

3.3 Langages de quatrième génération

Les langages de quatrième génération (L4G en abrégé), conçus pour l’interaction avec le programmeur, qualifient souvent les langages propres aux bases de données. Se situant un cran au-dessus de langages tels que le C++ ou le COBOL, ils se composent d’un jeu d’instructions s’apparentant à des macro-instructions, séquences d’instructions prédéfinies auxquelles on accède par une commande très simple. Toutefois, ces langages conservent un aspect hybride, dérivant le plus souvent des langages évolués.

3.3.1 Langage SQL

Acronyme de Structured Query Language, le langage SQL n’est pas un langage du même type que le langage C++. C’est un langage utilisé dans les systèmes de gestion de bases de données, permettant notamment de définir les structures des données, de spécifier les utilisateurs et leurs droits ou d’interroger les bases de données existantes. Dérivé du projet de recherche d’IBM qui avait conduit à l’élaboration du langage SEQUEL (Structured English Query Language), le langage SQL est une norme mondialement reconnue et répandue. Il peut être employé pour formuler des questions de manière interactive, mais aussi inséré dans un programme sous forme d’instructions de manipulation de données.

3.3.2 Langage Java

Le langage Java a été développé par la société Sun Microsystems en 1991. Les premières versions du langage ont été diffusées en 1995. Dérivé du langage C, inspiré du langage C++, mais plus simple que ce dernier, Java, signifiant « café » dans l’argot américain, est un langage orienté-objet. Son succès a été favorisé par sa grande utilisation sur le Web pour pallier les manques du langage HTML, notamment pour traiter les animations et l’interactivité. De plus, le langage Java est portable, c’est-à-dire qu’il peut être interprété par de nombreuses plates-formes. Ainsi, une applet (petit programme écrit en Java) est une application compilée qui s’exécute sur le poste client où est affichée la page HTML, à la différence d’une servlet qui est une application compilée qui s’exécute sur le serveur Web. Le langage Java dispose d’une riche bibliothèque de classes, qui permet notamment de gérer les interfaces graphiques et l’accès aux fichiers.

Professeur : Tél.: (237) 22 11 58 25  Ecrivez-nous