Méthodes numériques

publicité
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
Téléchargement