theme1 (1)
TRANSCRIPT
1
THÈME 1INTRODUCTION À L’INFORMATIQUE
SIO-2109 Z1 Introduction à la programmation
2011-01-13
2
L’informatique?Information + automatique
Traitement automatique de l'information par des machines telles que les ordinateurs, les consoles de jeux, les robots, etc.
L’ordinateur?Automate déterministe à composants
électroniques.Effectue des traitements sur des séquences
de signaux électriques.
3
Composants d’un ordinateur
Les dispositifs E/S permettent les communications avec l’environnement de l’ordinateur (clavier, souris, écran, clef USB, imprimante, etc.)
La CPU réalise les opérations de base.
La mémoire contient les programmes spécifiant les opérations à exécuter, et les données sur lesquelles les opérateurs agissent.
Unité Centrale de Traitement (CPU)
Dispositifs d'entrée et
de sortie (E/S) Mémoire
4
Deux sortes de programmes
Le système d'exploitationEnsemble des programmes qui gèrent les ressources
matérielles et logicielles. Il propose une aide au dialogue entre l'utilisateur et
l'ordinateur : interface textuelle (interprète de commande) ou graphique (gestionnaire de fenêtres).
Il est souvent multitâche et parfois multiutilisateur .
Les programmes applicatifs Dédiés à des tâches particulières. Formés d'une série de commandes contenues dans un
programme source écrit dans un langage « compris » par l'ordinateur.
5
Des langages de différents niveaux
Chaque processeur possède un langage propre, directement exécutable : le langage machine. Il est formé de 0 et de 1 (binaire) et n'est pas portable, mais c'est le seul que l'ordinateur « comprend ».
Le langage d'assemblage est un codage alphanumérique du langage machine. Il est plus lisible que le langage machine, mais n'est toujours pas portable. On le traduit en langage machine par un assembleur.
Les langages de haut niveau. Souvent normalisés, ils permettent le portage d'une machine à l'autre. Ils sont traduits en langage machine par un compilateur ou un interpréteur.
6
Bref historique des langages de haut niveau
Années 50 (approches expérimentales) : FORTRAN, LISP,COBOL. . .
Années 60 (langages universels) : ALGOL, PL/1, PASCAL. . . Années 70 (génie logiciel) : C, MODULA-2, ADA. . . Années 80-90 (programmation objet) : C++, LabView, Eiel,
Matlab. . . Années 90-2000 (langages interprétés objet) : Java,
Perl,tcl/Tk, Ruby, Python. . . Des centaines de langages ont été créés, mais l'industrie
n'en utilise qu'une minorité.
7
Deux techniques de production des programmes (1/2)
La compilation Consiste en une traduction du code source en langage
objet pour fournir un fichier exécutable.
Elle comprend au moins quatre phases Trois phases d’analyse: lexicale, syntaxique et sémantique, Une phase de production de code objet.
Pour générer le langage machine il faut encore une phase particulière : l’édition de liens.
La compilation est contraignante mais offre une grande vitesse d'exécution.
8
Remarque: les erreurs
(i) Vérification de l'orthographe (ii) Vérification de la grammaire (iii) Vérification des types de données (iv) RUN-TIME Error : erreur durant l'exécution (division par 0,
etc.) (v)Erreurs sémantiques: erreur de logique de programmation.
Analyse Lexicale
Analyse Syntaxique
Génération de code en langage machine
Signal d'erreur (i) Signal d'erreur (iii) Signal d'erreur (ii)
Programme SOURCE
Exécutable (iv)
9
Deux techniques de production des programmes (2/2)
Technique de l'interprétation Chaque ligne du code source analysé est traduite au fur et
à mesure en instructions directement exécutées. Aucun programme objet n'est généré.
Cette technique est très souple mais les codes générés sont peu performants: l'interpréteur doit être utilisé à chaque exécution...
10
Le génie logiciel: construction de programmes Méthodologie procédurale
On emploie l'analyse descendante ou remontante qui procède par raffinements successifs : décomposer un problème complexe en sous-programmes plus simples.
Méthodologie objet On conçoit des fabriques (classes) qui servent à produire des
composants (objets) qui contiennent des données (attributs) et des actions (méthodes). Exemple: Une chaise est une instance (objet) de la classe des
meubles
Les classes dérivent (héritage et polymorphisme) de classes de base dans une construction hiérarchique. Exemple: La classe des humains, la classe des animaux et la
classe des végétaux héritent de la classe être vivant.
Le langage Python offre les deux techniques
11
Algorithme et programme Algorithme
Moyen d'atteindre un but en répétant un nombre fini de fois un nombre fini d'instructions. Donc, un algorithme se termine en un temps fini.
Programme Un programme est la traduction d'un algorithme en un langage
compilable ou interprétable par un ordinateur.
Il est souvent écrit en plusieurs parties, dont une qui pilote les autres, le programme principal.
12
Exemple : permutation
Verre 1 Verre 2
Verre 3
Verre 1 Verre 2
???
Verre 1 Verre 2
Verre 3Verre 1 Verre 2
Verre 3Verre 1 Verre 2
Verre 3Verre 1 Verre 2
Algorithme
Initialisation
Début || Vider verre1 dans verre 3|||| Vider verre2 dans verre 1|||| Vider verre 3 dans verre 2 |Fin