Méthodes numériques 2eme Licence physique RAHAB Hichem Année universitaires : 2014 -2015 2eme PHYSIQUE Méthodes numérique Chapitre 1 : informatiques Rappels sur les langages On appelle « langage informatique » un 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 nous (humains) de donner des instructions à un ordinateur. À CHAQUE instruction correspond UNE action du processeur. Le langage utilisé par le processeur est appelé langage machine. Il s'agit des données telles qu'elles arrivent au processeur, constituées d'une suite de 0 et de 1 (données binaire). Le langage machine n'est ainsi 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. Le langage assembleur est le premier langage informatique qui ait été utilisé. Celui-ci est très proche du langage machine mais reste compréhensible seulement pour des développeurs connaissant très bien l’architecture de la machine cible. Toutefois, un tel langage est tellement proche du langage machine qu'il dépend étroitement du type de processeur utilisé (chaque type de processeur peut avoir son propre langage machine). Ainsi, un programme développé pour une machine ne pourra pas être porté sur un autre type de machine. Pour pouvoir utiliser un programme informatique écrit en assembleur sur un autre type de machine, il sera parfois nécessaire de réécrire entièrement le programme. 1.1 La portabilité d’un programme Le terme « portabilité » désigne l'aptitude d'un programme informatique à être utilisé sur des machines de types différents. Un langage informatique a donc plusieurs avantages : • • Il est plus facilement compréhensible que le langage machine ; Il permet une plus grande portabilité, c'est-à-dire une plus grande facilité d'adaptation sur des machines de types différents ; 1.2 Langages impératifs et fonctionnels On distingue habituellement deux grandes familles de langages de programmation, selon la manière de laquelle les instructions sont traitées : • • les langages impératifs ; les langages fonctionnels. 1.2.1 Langage impératif Un langage impératif organise le programme sous forme d'une série d'instructions, regroupées par blocs. Il s'agit historiquement des premiers langages, même si de nombreux langages modernes utilisent toujours ce principe de fonctionnement. Les langages impératifs structurés souffrent néanmoins d'un manque de souplesse étant donné le caractère séquentiel des instructions. RAHAB Hichem © 2014 -2015 2 Méthodes numérique 2eme PHYSIQUE 1.2.2 Langage fonctionnel Un langage fonctionnel (parfois appelé langage procédural) 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é. 1.3 Interprétation et compilation Les langages informatiques peuvent grossièrement se classer en deux catégories : • • les langages interprétés. les langages compilés. 1.3.1 Langage interprété Un langage informatique est par définition différent du langage machine. Il faut donc le traduire pour le rendre intelligible du point de vue du processeur. Un programme écrit dans un langage interprété a besoin d'un programme auxiliaire (l'interpréteur) pour traduire au fur et à mesure les instructions du programme. Remarque : L’interprétation ne donne pas comme résultat un code binaire, qui nécessite l’utilisation de code source à chaque fois qu’on exécute le programme. 1.3.2 Langage compilé Un programme écrit dans un langage dit « compilé » va être traduit une fois pour toutes par un programme appelé compilateur, afin de générer un nouveau fichier qui n'aura plus besoin d'un programme source pour s'exécuter; on dit d'ailleurs que ce fichier est exécutable. De plus, comme la traduction étant faite une fois pour toute, il est plus rapide à l'exécution. Toutefois il est moins souple qu'un programme écrit avec un langage interprété car à chaque modification du fichier source (code binaire celui qui va être compilé) il faudra recompiler le programme pour que les modifications prennent effet. D'autre part, un programme compilé a pour avantage de garantir la sécurité du code source. En effet, un programme écrit dans un langage interprété, étant directement intelligible (lisible), permet à n'importe qui de copier le code voire de le modifier. Il y a donc risque de non-respect des droits d'auteur. 1.3.3 Langages intermédiaires Certains langages appartiennent en quelque sorte aux deux catégories (LISP, Java, Python, ..) car le programme écrit avec ces langages peut dans certaines conditions 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écessité d'un interpréteur). Les applets Java sont des exemples de ce type de programmes. RAHAB Hichem © 2014 -2015 3