theme1 (1)

12
THÈME 1 INTRODUCTION À L’INFORMATIQUE SIO-2109 Z1 Introduction à la programmation 1 2011-01-13

Upload: salmazen

Post on 09-Jun-2015

456 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Theme1 (1)

1

THÈME 1INTRODUCTION À L’INFORMATIQUE

SIO-2109 Z1 Introduction à la programmation

2011-01-13

Page 2: Theme1 (1)

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.

Page 3: Theme1 (1)

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

Page 4: Theme1 (1)

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.

Page 5: Theme1 (1)

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.

Page 6: Theme1 (1)

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é.

Page 7: Theme1 (1)

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.

Page 8: Theme1 (1)

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)

Page 9: Theme1 (1)

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...

Page 10: Theme1 (1)

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

Page 11: Theme1 (1)

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.

Page 12: Theme1 (1)

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