MC-II1 - Cours no 1 Langages de programmation Introduction `a la ...

De
Publié par

  • cours - matière potentielle : no
MC-II1 - Cours no 1 Langages de programmation Introduction a la POO IUT GEII Rouen 2010-2011 1/33 Sommaire Langages de programmation Programmation orientee objet (P.O.O.) Introduction Encapsulation Heritage Polymorphisme Regroupement d'objets 2/33 Niveau 0 : le processeur I Un processeur ne peut executer que son langage natif (”code machine”), represente sous une forme lisible par le langage dit ”assembleur” ?add_pairs@@YAXPBMH@Z (void _cdecl add_pairs(float *,.
  • programmation du langage naturel
  • classe de base et de classes derivees
  • utilisateur des methodes d'acces aux donnees en lecture et en ecriture
  • capot pour demarrer
  • donnees du monde des affaires
  • structures de donnees programmation
  • gui
  • methodes communes
  • donnees
  • classes
  • classe
Publié le : mercredi 28 mars 2012
Lecture(s) : 53
Tags :
Source : skramm.pagesperso-orange.fr
Nombre de pages : 7
Voir plus Voir moins
1/33
o MC-II1 - Cours n 1 Langages de programmation Introduction`alaPOO
Sebastien.Kramm@univ-rouen.fr
IUT GEII Rouen
2010-2011
Niveau 0 : le processeur Unprocesseurnepeutex´ecuterquesonlangagenatif(code I machine),repre´sente´sousuneformelisibleparlelangagedit ”assembleur” ? a d d _ p a i r s @ @ Y A X P B M H @ Z ( v o i d _ c d e c l a d d _ p a i r s ( f l o a t * ,.. 0 0 0 0 0 0 0 0 : 8 B 54 24 0 C mov edx , d w o r d ptr [ esp +0 Ch ] 0 0 0 0 0 0 0 4 : 85 D2 t e s t edx , edx 0 0 0 0 0 0 0 6 : 74 1 F je 0 0 0 0 0 0 2 7 0 0 0 0 0 0 0 8 : 8 B 44 24 08 mov eax , d w o r d ptr [ esp +8] 0 0 0 0 0 0 0 C : 8 B 4 C 24 04 mov ecx , d w o r d ptr [ esp +4] 0 0 0 0 0 0 1 0 : D9 00 fld d w o r d ptr [ eax ]
3/33
Question : que fait ce programme ? ? ? Id´ee:Rapprocherlaprogrammationdulangagenaturel I
Figure:emmholrtsbitcaxanuadehiac`ane:donamelationsurclassic (source : DiScala)
Sommaire
2/33
Langages de programmation
Programmationoriente´eobjet(P.O.O.) Introduction Encapsulation He´ritage Polymorphisme Regroupement d’objets
Objectif d’un langage de programmation
4/33
Introduction d’un niveau d’abstraction, et suppression de I l’information non essentielle :
Mode`lesdexe´cution
5/33
I Interpre´te´(Basic,Perl,Javascript,...): I Lecodeesttraduiteninstructions-machineaumomentdelexe´cution, Avantages:simplicite´dude´veloppement, I I Inconve´nients:lent,peuecace,structurationdicile. I Compil´e(C,C++,...): I Le code est traduit en instructions-machine lors de la phase de de´veloppement,ondistribuelesbinaires(chiersexe´cutables), Avantage : code rapide, I I Inconv´enient:portabilit´edesbinairesal´eatoire. Mixte (Java, C#, ...) : I I Lecodeesttraduitdansunlangageinterm´ediaire(JVM,MSIL),la machine-cible doit disposer d’uninterpreteur, Avantage:portabilit´egarantie, I I Langagesre´cents:hautniveaudabstractionetlargebibliothe`ques applicatives, Inconv´enients:moinsrapidequunbinairepur. I
Attention aux apparences !
7/33
I Ancienneveutpasdireinutilis´e! I 75%desdonne´esdumondedesaairessonttraite´espardes programmesenCOBOL,15%desnouveauxprogrammesd´evelopp´es le seront dans ce langage.” (Gartner Group, 2005)
Langages de programmation
6/33
Langagesdenouvelleg´en´eration
8/33
I Python (1990) I Ruby (1995)
source :Di Scala
I Multiparadigmes, Haut niveau d’abstraction (typage dynamique, ramasse-miettes, ...), I I Large contexte d’utilisation (desktopou web), I Simplicite´delasyntaxe, Fonctionnalit´es´etenduesgracea`denombreuxframeworks. I
Logiciel : historique
9/33
Alorigine,travauxderecherche,labospublicsouprive´s(A&T, I Bell,...) 1970:informatique=mat´eriel,logicielassimil´e`adure´glage. I I Aujourd’hui : Industriemajoritairementpilot´eepardesgrandsgroupes(Microsoft, I Sun, Borland, Adobe, Google, ...) Leslangagesdeprogrammationsontsouventlie´sa`unacteur I e´conomiqueetsontpartieinte´grantedeleurstrate´giemarketing: I JavaOrarleac(hreuancepSt´)010ajne2.vn I C#, VB.NETMicrosoft (”plateforme .NET”) DelphiBorland I Flashe)Adobdia(e´morcaM I Uneexception:C++,langageinde´pendant I I Evolutionsfutures:developpementdelex´ecutiondistribue´e,notion deservicesweb:unprogrammenesex´ecuteplussurune machine, mais suruesuarne´de machines.
Sommaire
Langages de programmation
Programmationorient´eeobjet(P.O.O.) Introduction Encapsulation He´ritage Polymorphisme Regroupement d’objets
11/33
Mod´elisation:die´rentesapproches
I Onpeutintroduiredi´erentsniveauxdabstraction,amenant die´rentesapproches(paradigmesde programmation). On distingue (parmi d’autres...) : I
Programmationproce´durale Axe´esurlestraitementsusend:elpl´etdesme`eblroepsehcaˆtneee´puoc plusd´etaille´es ´eesrgmaPorthris+mes=megoAledsennodurtsrutc
ProgrammationOriente´eObjet(POO) Axe´esurlesseen´ondts´dmeee´peeceuoetsqnobjui:l`obprle communiquent entre eux par envois de messages Programmes = objets communiquant entre eux
10/33
P.O.O. ? - Objet ?
13/33
POO : Tentative de rapprochement du comportement d’un I programmeaveclecomportementdumondere´el. Onmode´liselataˆchea`accomplirpardesobjetsquiinteragissent I entre eux. Lesobjetsausensinformatiquepeuventrepre´senter: I desobjetsr´eels:voiture,conducteur,chaise,porte,chien,..., I
I desnotionsimmate´rielles:algorithme,pointdelespace,lignede texte,rendez-vous,e´lementdunprogramme..., Desagrstion´egatee´or`gnese.tejbodsetsil(sg`moho),h´ouesen I
Exemple type : logiciel avec interface graphique
14/33
Exemple de programme
Onpourrait´ecrireleprogrammepre´c´edenten8lignes! I
En POO, les fonctionmain()!sont courtes oxjbtese´uge´uaeld´stteouT
16/33
int m a i n () { K E R N E L n o y a u ;n o y a ur e a t i o n // c GUI gui ;g r a p h i q u ei n t e r f a c e r e a t i o n // c do { E V E N T e = gui . G e t E v e n t () ;v e n e m e n t// e C O N T E N U c = n o y a u . P r o c e s s ( e ) ;r a i t e m e n t // t le n p a r o y a u gui . S h o w ( c ) ;)l/eutnfefvae/´ah(ceig } w h i l e ( e . G e t M s g () != Q U I T ) ;// t p a s c ’ e s t q u e a n t f i n i . . . }
I noyau: variable (=objet) de type ’KERNEL’ I gui: variable (=objet) de type ’GUI’
Exemple type : logiciel avec interface graphique
15/33
Ce qu’on ne voit pas (”coeur” du I programme) I Cequonvoit(Fenˆetre) Ele´mentsdelafenˆetre I I Barre titre Barre menus I I Barre d’outils I Ascenseurs ... I Contenudelafenˆetre(pageHTMLach´ee I en mode graphique) image(s) I I texte hyperliens I ... I I Autant d’objets !
Notion de classe Uneclasseleou)edle`el(tmboej´eserepremodntel I lalistedesescaracte´ristiquesattributs I les choses qu’il peut faireme´htdose(=fonctionsassocee´ia`s l’objet)
17/33
Classe6= Instance
Unobjetest uneinstancealca(esse´rcoitanmnemo´eedirneuozendel pourlestockagedesesdonn´eespropres)
18/33
A - Encapsulation
21/33
I Onnemontredelobjetquecequiestne´cessaire`asonutilisation: l’objet est une ”boite noire”, munie de ”boutons” sur lesquelles on peut agir. I Lesdonn´ees(attributs)sontprot´eg´es:leurmodicationest contrˆol´eeparlobjet. Avantages : I I simplification de l’utilisation de l’objet, meilleurerobustesse(lesvaleurspeuventeˆtrecontrˆol´ees), I simplification maintenance, I I optimisationspossiblessanscons´equencepourlutilisateur. Onfournita`lutilisateurdesme´thodesdacc`esauxdonne´esen I lectureetene´criture(notion d’interface).
Principes fondamentaux de la POO
Trois principes : Encapsulationchcapre/on:niuqapae`toecegˆetresbesoind I connu/manipul´eparlutilisateurdelobjet, Heritage: On hierarchise les objets afin de mutualiser ce qui peut I lˆetre(factorisation):attributset/oume´thodes, I Polymorphismetnevcoesunmmqueseuipe´ntiedmse´htdo:ond sadaptera`lanaturer´eelledelobjet.
19/33
A-Encapsulation:analogieaveclemondere´el
Exemple : automobile
22/33
I L’utilisateur utilise uneinterfacetiov(eruloˆrasrecontpourlavo,nt p´edales,levierdevitesse,...) I Ilnapasbesoindallerouvrirlecapotpourde´marrer:le fonctionnement este´achc. I Onpeutchangerdespie`cessouslecapotsanscons´equencespour l’utilisateur.
Soyez le premier à déposer un commentaire !

17/1000 caractères maximum.