¨ Dépannage-Maintenance-Formation-Informatique | Articles-Info | Les langages informatiques |
Les langages informatiques : Rappel des Notions de bases : du langage naturel aux langages de programmation en passant par le langage machine et l’Assembleur.
Frédéric Hourdeau | | | Articles | | | le 22/07/2013 à 17h00 |
Tweeter |
En informatique, le langage naturel s'oppose au langage informatique (voir News concernant les travaux du MIT pour faciliter le passage du langage naturel à la programmation):
- Le «langage informatique »: le langage destiné à décrire l'ensemble des actions consécutives qu'un ordinateur doit exécuter. Un langage informatique est ainsi une façon pratique pour l’homme de donner des instructions à un ordinateur. Un langage informatique est rigoureux car: à une instruction correspond une action du processeur.
- Par opposition, le terme « langage naturel »représente les possibilités d'expression commun à un groupe d'individus (l'anglais ou le français p.ex.). C’est le langage communément pratiqué.
Première typologie :
ð langages machine: directement interprétables par le processeur d'un ordinateur. Son inconvénient: il est peu lisible pour le programmeur. En effet, il s'agit des données telles qu'elles arrivent au processeur, constituées d'une suite de 0 et de 1 (données binaires).
ð langages de programmation : ils sont compréhensibles par le programmeur et facilement traductibles (on dit « compilables ») en langage machine
Les avantages des langages informatiques:
- ils sont plus facilement compréhensibles que le langage machine.
- ils permettent une plus grande « portabilité », c'est-à-dire une plus grande facilité d'adaptation sur des machines de types différents
ð langages «formels » : définis à partir d'un alphabet et d'un certain nombre de règles formelles.
L’idéal pour les éditeurs de moteurs de recherche serait de pouvoir donner des résultats pertinents à une requête formulée en langage naturel, en langage courant (voir News sur les travaux du MIT).
Protocoles de communication : Les langages permettant aux ordinateurs à communiquer entre eux n'ont rien à voir avec des langages informatiques, on parle dans ce cas de protocoles de communication.
Les langages de programmation :
Le langage machine compréhensible par le processeur n'est pas compréhensible par l'être humain, c'est pourquoi des langages intermédiaires, compréhensibles par l'homme, ont été mis au point :
Le code écrit dans ce type de langage est transformé en langage machine pour être exploitable par le processeur.
1) L'assembleur est le premier langage informatique à avoir été utilisé. Il est très proche du langage machine mais reste compréhensible pour des développeurs.
En contrepartie, un tel langage est tellement proche du langage machine qu'il dépend étroitement du type de processeur utilisé (à chaque type de processeur correspond généralement langage machine propre) : un programme développé pour une machine ne pourra pas être « porté » sur un autre type de machine. D’où le concept de «portabilité» qui désigne l'aptitude d'un programme informatique à être utilisé sur des machines de types différents. L’utilisation d’un programme informatique écrit en assembleur pour une machine donnée nécessitera vraisemblablement une réécriture entière du programme pour une autre machine !
2) Les langages « intermédiaires » de programmation, principales distinctions :
On distingue habituellement plusieurs familles de langages de programmation :
- selon la manière dont les instructions sont traitées : les langages impératifs et les langages fonctionnels.
- les langages interprétés et les langages compilés avec par ailleurs des langages « intermédiaires »
2.1 Langage impératif et langage fonctionnel:
2.1.1 Un langage impératif organise le programme sous forme d'une série d'instructions, regroupées par blocs et comprenant des sauts conditionnels permettant de revenir à un bloc d'instructions si la condition est réalisée.
Il s'agit historiquement des premiers langages, cependant de nombreux langages modernes utilisent toujours ce principe de fonctionnement.
Les langages impératifs structurés ont un handicap: un manque de souplesse lié au caractère séquentiel des instructions.
2.1.2 Langage fonctionnel
Un langage fonctionnel est un langage dans lequel le programme est construit par fonctions, retournant un nouvel état en sortie et prenant en entrée la sortie d'autres fonctions. Lorsque la fonction s'appelle elle-même, on parle alors de récursivité.
2.2 Interprétation et compilation
2.2.1 Langage interprété :
(Ex : Basic ; PHP, logiciel de développement de sites Web dynamiques ; Prolog ; Perl pour le traitement de chaines de caractères ; Matlab et Mathématica pour le calcul mathématique ;
On a vu que par définition un langage informatique est différent du langage machine. Il faut donc le traduire pour le rendre intelligible pour le processeur. Un programme écrit dans un langage interprété nécessite un programme auxiliaire (appelé interpréteur) pour traduire au fur et à mesure les instructions du programme.
2.2.2 Langage compilé
(ex : C, programmation système et C++ ; Cobol pour la gestion; Fortran pour le calcul ; Pascal ; ADA.)
Un programme écrit dans un langage dit « compilé » sera traduit une fois pour toutes par un programme annexe, appelé compilateur, afin de générer un nouveau fichier qui sera autonome, c'est-à-dire qui n'aura plus besoin d'un programme autre que lui pour s'exécuter; c’est pourquoi on dit que le fichier est « exécutable ».
Un programme écrit dans un langage compilé a l’avantage de ne plus nécessiter, une fois compilé, de programme annexe pour s'exécuter. Autre avantage, la traduction étant faite une fois pour toute, il est plus rapide.
D'autre part, un programme compilé a pour autre avantage de garantir la sécurité du code source. En effet, par opposition, le langage interprété, étant directement intelligible (lisible), il permet à quiconque de connaître la manière dont le programme a été construit et donc de copier le code et même de le modifier ceci au détriment du concepteur. D'autre part, en termes de sécurité, certaines applications sécurisées nécessitent la confidentialité du code pour éviter le piratage dans le domaine bancaire, des transactions en ligne et des communications sécurisées par exemple.
Inconvénient : il est moins souple qu'un programme écrit avec un langage interprété. En effet, à chaque modification du fichier source (intelligible par l'homme, celui qui va être compilé) il faudra recompiler le programme pour que les modifications s’appliquent.
2.2.3 Langages intermédiaires (ex. Java, Lisp…)
Certains langages sont hybrides, empruntant aux deux catégories car le programme écrit avec ces langages peut, dans certains cas subir une phase de compilation intermédiaire vers un fichier écrit dans un langage qui n'est pas intelligible (donc différent du fichier source) et non exécutable (nécessitant un interpréteur).
Ainsi, les « applets Java » (les logiciels qui s'exécutent dans la fenêtre d'un navigateur web), sont des fichiers qui sont compilés mais que l'on ne peut exécuter qu'à partir d'un navigateur internet (on dit que ce sont des fichiers dont l'extension est « .class »).
Permettre l’écriture de programmes en langage « naturel » - News - publié le 22/07/2013
Des chercheurs du MIT annoncent la mise au point d’un procédé permettant aux utilisateurs les plus inexpérimentés d’accéder à la programmation. De larges perspectives ouvertes. |
Outlook sur Iphone/ Ipad ! Bonne nouvelle ? - News - publié le 20/07/2013
Bonne nouvelle (pas forcément) pour les fans de la « Pomme » qui utilisaient Outlook sur leur poste de travail. |
La Poste : De nouvelles missions pour des collaborateurs prêts à s’adapter à la révolution numérique. Des emplois sauvegardés et « rénovés ». Le « facteur » à l’heure des nouvelles technologies. - News - publié le 18/07/2013
Avec 267 000 collaborateurs, La Poste est le quatrième employeur de France. |
Nerim lance l’Ultra haut débit pour les PME - News - publié le 15/07/2013
Nerim lance l’Ultra haut débit pour des grosses PME (ou moins grosses) ayant des besoins spécifiques en matière de transfert de données. Un précurseur au service des professionnels (1). |
Economie numérique en France : diminution prévue de 1,1% en 2013 par le Cabinet Forrester. Croissance de 3% des dépenses prévues en 2014 . Un retard par rapport à l’Allemagne pour les technologies de pointe - Articles - publié le 19/07/2013
Les dernières prévisions de Forrester sur les dépenses technologiques prévoient une baisse du marché français de 1,1% en 2013 avec un chiffre d’affaire de 70 milliards d’euros. |
Flutter : Un contrôleur gestuel pour vos logiciels multimédia - Astuces - publié le 29/06/2013
Vous cherchez à vous simplifier la vie en utilisant des raccourcis gestuels ou vous cherchez tous simplement à en mettre plein la vue à vos amis. |