Animal. Animal-marin. Baleine. Mobby-Dick. est-un

Dimension: px
Commencer à balayer dès la page:

Download "Animal. Animal-marin. Baleine. Mobby-Dick. est-un"

Transcription

1 ChristopheDony(1),JacquesMalenfant(2),DanielBardou(1) Leslangagesaprototypes1 (2)EcoledesMinesdeNantes{4,rueA.Kastler 34392MontpellierCedex5{FRANCE (1)L.I.R.M.M{161,rueAda 44070NantesCedex03{FRANCE larepresentationd'objetsconcretsplut^otquesurcelledeconcepts,oupluspragmatiquement, uneformedeprogrammationparobjetssansclasses.cechapitredecritceslangages,lesraisons Leslangagesaprototypesproposentuneformedeprogrammationparobjetss'appuyantsur Resume quiontconduitaleuremergence,lespossibilitesnouvellesqu'ilsapportent,maisaussilesproblemesqu'ilsposent.nousrepondonsenpremierlieuauxquestionssuivantes.qu'est-cequ'un prototype?qu'est-cequ'unobjetconcret?pourquoichercherasepasserdesclasses?quelleest langagesaobjets). tiondierentielle.cettecaracterisationnouspermetdedierencierl'heritagedansleshierarchies d'objets(ladelegation)del'heritageviadeshierarchiesdeclasses(quiestl'heritageclassiquedes caracterisonsplusprecisementlesdeuxmecanismesdecreationd'objets:leclonage,etladescrip- l'architectureprimitived'unlangageaprototypesetquelleestlagenesedeceslangages?nous programmationparprototypes.autraversdecettepresentationcritique,nousposonsnalement laquestiondel'inter^etetdel'avenirdecetteformedeprogrammationparobjets. Ellenouspermetegalementdepresenterlesspecicitesainsiquelesproblemesqueposela issusdesimula(1967)etdesmalltalk(1972).cesontdeslangagesauseindesquelslaclasse, 1Leslangagesaobjetslesplusutilisesaujourd'hui(enparticulierdanslemondeindustriel)sont Introduction largementetudieesdansdestravauxderecherchegurelafamilledeslangagesditsaprototypes representationdeconnaissancesetsestructurentlesprogrammes. modelisationintensionnelled'unconcept,estl'unitefondamentaleautourdelaquelles'organisela dontnoustraitonsdanscechapitre.unprototypeestunrepresentanttypiqued'unefamilleoud'une categoried'objets[cohenetmurphy,1984].leslangagesaprototypes,apparusaumilieudesannees 80,proposentuneapprochedelaprogrammationparobjetsreposantsurlanotiondeprototype Parmilesautresfamillesdelangagesdeprogrammationparobjetseectivementutiliseesou enreactionauncertainnombredelimitationspropresaumodeleaclasses,aveclesobjectifssuivants: dec.hewitt,utilisesenprogrammationdistribuee(creffbriotg).ilsonteteetudiesetdeveloppes, representationdeconnaissancescreffeuzenatg)etparcertainslangagesd'acteurs,issusdestravaux plut^otquesurcelledeclasse.ilsonteteinspiresparlespremierslangagesdeframesutilisesen abstrait, J.Euzenat,G.MasisietA.Napoli.INRIA-CollectionDidactiqueen Parudanslelivre"LangagesetModelesaObjets:Etatsdesrecherchesetperspectives",editeurs:R.Ducournau, {permettreunedescriptionsimpledesobjetsnenecessitantpasladescriptionprealabledemodeles 1

2 {orirunmodeledeprogrammationplussimplequeceluidesclasses,quijouentdetropnombreux r^oles, {enn,orirdenouvellespossibilitesderepresentationdeconnaissances. Leslangagesaprototypessontissusdecesobjectifsainsiqueduconstatd'uncertainnombre delimitationsdumodeleaclasses[borning,1986],avecl'espoird'obteniruneplusgrandepuissance d'expressiondansdeslangagesparailleursplussimples.depuislemilieudesannees1980,denombreux langagesontvulejour:self[ungaretsmith,1987;agesenetal.,1993;agesenetal.,1995;chambers etal.,1991;smithetungar,1995],kevo[taivalsaari,1991;taivalsaari,1993],nas[codani,1988], exemplars[lalondeetal.,1986;lalonde,1989],agora[steyaert,1994],garnet[myersetal., 1990;Myersetal.,1992],moostrap[MuletetCointe,1993;Mulet,1995],cecil[Chambers,1993], omega[blaschek,1994],newton-script[smith,1994].d'autreslangages,telsobject-lisp[allegro CommonLisp,1989]ouyafool[Ducournau,1991]nesereclamantpasdel'approcheparprototypes orentneanmoinsdesmecanismesproches. Lacaracterisationtresgeneraleetinformelledeslangagesaprototypesestrelativementaisee: cesontdeslangagesdanslesquelsontrouveenprincipeuneseulesorted'objetsdotesd'attributs2 etdemethodes,troisprimitivesdecreationd'objets:creationexnihilo,clonageetextension(ou descriptiondierentielle),unmecanismedecalcul,l'envoidemessage,integrantunmecanismede delegation.cecietantpose,leurcaracterisation,leurutilisationetleurcomprehensionpreciseposent enfaituncertainnombredeproblemes. {Ilexistediversesinterpretationsdecequ'estunprototype,objetconcretourepresentantmoyen d'unconcept,quipeuventconduireadeslangagesassezdierents[malenfant,1995]. {Lasemantiquedesmecanismesdebase(clonage,copiedierentielle,delegation)n'estpasuniee etautorisedierentesinterpretations[donyetal.,1992;malenfant,1995;bardouetdony,1996; Bardouetal.,1996;Malenfant,1996]. {Ladescriptiondierentiellerendlesobjetsinterdependants,cequiposedenouveauxproblemes etautorisediversesinterpretationsquantaustatutdesobjets[donyetal.,1992;malenfant, 1996;BardouetDony,1996;Bardouetal.,1996]. {Enm^emetempsquelesclasses,aetesupprimeeparexemple,lapossibilited'exprimerque deuxconceptspartagentcertainescaracteristiques.cettesecondepossibiliteestsiimportante entermed'organisationdesprogrammesquedenombreuxlangagesaprototypesontcherche alareintroduire,cequiaetefaitdefaconplusoumoinsappropriee.cettereinsertionde formesd'abstractiondanslemodelearemisencausecertainspostulatsinitiauxetabrouille lesfrontieresentrelangagesaprototypesetlangagesaclasses[malenfant,1996]. Nousnousproposonsdedecrireceslangages,dejugerdespossibilitesqu'ilsorent,d'etudier dansquellemesureilssatisfontlesobjectifsqueleursconcepteurss'etaientxesetaquelprix.nous nousdemandonssiceslangagessontviables(peut-onsepasserdelarepresentationdesconcepts), dansl'armativelesquelsutiliseret,danslanegative,sicertainesdesideesqu'ilsontintroduites peuvent^etreappliqueesdansd'autrescontextes?leparagraphe2rappellecequ'estlanotionde prototypeensciencecognitive.leparagraphe3presentelespremieresutilisationsdecettenotionen representationdeconnaissancesparobjetsainsiqu'enprogrammationdistribuee.nousydecrivonsles primitivesdeclonageetdedescriptiondierentielle.leparagraphe4exposelesmotivationsquiont conduitleschercheursaconcevoirdeslangagesaobjetssansclasses;ilmontrel'inter^etpotentielde laprogrammationparprototypes.leparagraphe5decritlespremierespropositionsdelangagessans classes.leparagraphe6faitlepointsurlesconceptsetlesmecanismesdebasedelaprogrammation parprototypes.leparagraphe7proposeunecaracterisationplusnedecesconceptsetdeces mecanismes.cettecaracterisationpermetdedierencierleshierarchiesd'objetsdeshierarchiesde classesetdemieuxcomprendrelesdierentesevolutionsdeslangagesaprototypes.leparagraphe8 decritlesproblemesliesal'identitedesobjetsetleparagraphe9lesproblemesliesal'organisation desprogrammes.enconclusionnouspresentonsunbilandel'experienceainsilesaxesderecherche quenotreanalysefaitappara^tre. 2.Nousutilisonscetermepourdesignerunecaracteristiquenoncomportementaled'unobjetoud'unframe,nous aurionspuutiliserlesequivalentsquesont((champ))ou((slot)). 2

3 2 Notiondeprototype Ontrouveensciencescognitivesl'ideederepresenterunconcept,ouunefamilled'entites,parun representantdistingueainsiquel'ideedecopiedierentielle.danscecontexte,dierentsmodelesde lanotiondeconceptonteteproposes[smithetmedin,1981;cohenetmurphy,1984;kleiber,1991]. Undecesmodelesestfondesurlatheoriedesensembles:achaqueconceptcorrespondunecollectiond'entites(extension),etchaqueconceptadmetunedenitionquicaracteriseson(essence) etdenitlesconditionsnecessairesetsusantesal'appartenanced'uneinstanceaceconcept(intension),.larelationquilieuneinstanceaunconceptetcellequilieunconceptplusspeciquea unconceptplusgenerals'yapentrespectivementauxrelationsensemblistesd'appartenanceet d'inclusion.cemodeledeconceptsconduitaunemiseenuvrebaseesurlesclasses. Unautremodele(developpeenlinguistique)permetdenepasvaluersystematiquementtoutes lescaracteristiquesd'uneinstance.ilyatoujoursdesconditionsnecessairesetsusantespourl'appartenanceaunconcept,maisons'accordelapossibilitedenepassavoir:onsaitqu'uneinstance appartientaunconcept,qu'ellen'yappartientpas,oubienonn'ensaitrien(creffeuzenatg).la (theoriedesprototypes)estuneextensiondecetteapprochedanslaquellelarelationd'appartenanceestunecertainerelationderessemblanceplusambigue.danscettetheorie,lesconceptsne sontdecritsnienintensionnienextensionmaisindirectementautraversdeprototypesduconcept, c'est-a-dired'exemples.cettetheoriedecouleduprincipeselonlequell'humainserepresentementalementunconcept,identieunefamilled'objetsetmenedesraisonnementssursesmembresenfaisant reference,aumoinsdansunpremiertemps,aunobjetprecis,typiquedelafamille.ma(2cv) est,parexemple,unprototypeduconceptde(voiture),comme(netscape)l'estpourleconcept de(navigateurinternet).ontrouveaussidanslatheoriedesprototypeslanotiondedescription dierentiellequidesignelapossibilitededecrire'unnouveaurepresentantduconceptvial'expression desesdierencesparrapportaunrepresentantexistant. Andemieuxexpliquercommentcesnotionsonteteutilisees,ilnousappara^tnecessairededistinguerdeuxsortesdeprototypesquenousrencontreronsdansnoslangages:lerepresentantconcret etlerepresentantmoyend'unconcept.ilestprealablementnecessaired'etablirunedistinctionterminologiqueentrelesobjetsdumondedontnoussouhaitonsrealiserunedescriptioninformatique(que nousappelleronsle(domaine),cf.creffeuzenatg)etlesobjetsdenoslangages.nousutiliserons leterme(entite)pourdesignerlespremiers. {Representantconcretetinstanceprototypique.Lerepresentantconcret,dontma(2CV) estunexemplepourleconcept(voiture),correspondauneentiteconcrete.nousreprenonsleterme d'(instanceprototypique)pourdesignerunrepresentantconcretutilisecommereferencepour decrireoucreerd'autresobjets.l'instanceprototypiqued'unconceptestainsisouventlepremier objetd'unefamille. {Representantmoyen.Unrepresentantmoyenrepresenteuneentitequipeut^etreabstraite ouincomplete.lerepresentantmoyennerepresenteaucuneentiteconcrete.ilpeutnepossederque lesattributslespluscourantsaveclesvaleurslespluscourantespourlacategoried'entitesqu'il represente.la(menageredemoinsde50ans)estunexemplecelebrederepresentantmoyendu concept(telespectateur);unobjetpossedantquatresrouesetunmoteurestunrepresentantmoyen duconcept(voiture).sesattributspeuventcontenirdesvaleursmoyennes,parexemple,lafemme francaisetypiquea1,8enfants. 3 Utilisationsinformatiquesdelanotiondeprototypeanterieuresauxlangagesaprototypes 3.1Lesprototypesenrepresentationdesconnaissances Leslangagesaprototypesexistaientavantquel'appellationn'apparaisse.Ontrouveainsiles notionsdeprototypeetdecopiedierentielledanslatheoriedesframesdeminsky[minsky,1975] etdanscertainssystemesinspiresdecettetheoriecommeleslangagesdeframestelskrl[bobrow 3

4 Frame nom:"baleine" categorie:mammifere milieu:marin ennemi:homme poids:10000 couleur:bleu Fig.1{ExempledeFrame Frame nom:"moby-dick" est-un:baleine couleur:blanche ennemi:cpt-haccab Fig.2{Descriptiondierentielle etwinograd,1977]oufrl[robertsetgoldstein,1977]. (Lesframessontunformalismederepresentationcreepourprendreencomptedes connaissancesquisedecriventmal...[dansd'autresformalismes]...commelatypicalite, lesvaleurspardefauts,lesexceptions,lesinformationsincompletesouredondantes.la structured'unframe...doitpouvoirevolueratoutmoment,parmodication,adjonction oumodicationdeproprietes.)[masinietal.,1989] Nousallonsdonnericiunevisionsimplieeal'extr^emedecequesontlesframes,sansillustrerleur richesseetleurdiversite;notrebutestdemontrerenquoiilsutilisentlatheoriedesprototypes etcommentilsontinuencescertainsdeslangagesaprototypesutilisesaujourd'hui.lelecteurse reporteraauxarticlesprecedemmentcitesetauchapitreproposedans[masinietal.,1989]pourplus deprecisions. Structured'unframe.Unframeestunensembled'attributs;chaqueattributpermetde representerunedescaracteristiquesduframeetsepresentesouslaformed'uncouple(nomd'attribut {ensembledefacettes).lafacettelapluscouranteetantlavaleurdel'attribut,nousneconsidererons quecelle-cidansnosexemples.lagure1proposeunexemplededenitiond'unframedoteede4 attributsrepresentantdefaconminimaleunebaleine. Descriptiondierentielle.Ladescription(oucreation)dierentiellepermetdedecrireun nouveauframeenexprimantsesdierencesparrapportaunframeexistant3.ellemetenrelation lenouveauframeavecceluisurlequelsadescriptiondierentielles'appuieetquiestappeleson prototypeouson.cetterelationestmaterialiseeparunliengeneralementappeleest-un. Nousavonsrepresenteceliendansnosexemplesparl'intermediaired'unattributsupplementaire4 egalementnommeest-un.lagure2montreladenitiond'unframerepresentantmoby-dickqui estcommelabaleineprecedenteacecipresqu'elleestblancheetquesonennemiestdeniplus precisement. HeritageetHierarchiesdeframes.Larelationest-unestunerelationd'ordredenissant deshierarchiedeframes[brachman,1983].unframeheritedesonunensembled'attributs etontrouvedanslessystemesdeframesdeshierarchiesd'heritage,commecelledelagure3,tres similairesauxhierarchiesdeclasses5,acecipresquelesnudsdecettehierarchierepresententdes exemplesplut^otquedesdescriptiondeconcepts.ausommetdelahierarchiesetrouventgeneralementdesrepresentantsmoyensdeconcepts(parexempleanimal)etdanslebasdelahierarchie desrepresentantsconcrets(parexemplemoby-dick).ontrouvedeshierarchiessimilairesdansles programmesrealisesavecleslangagesaprototypes. 3.((Theobjectbeingusedasabasisforcomparison(whichwecalltheprototype)providesaperspectivefromwhich toviewtheobjectbeingdescribed.(...)itisquitepossible(andwebelievenatural)foranobjecttoberepresentedin aknowledgesystemonlythroughasetofsuchcomparisons.))[bobrowetwinograd,1977] 4.Celienestenpremierlieuutiliseparlesystemeetn'estpasnecessairementaccessibleauprogrammeurviaun attribut.nousavonsdonc,pourdesraisonsdesimplicitedansnotreexpose,introduit,uneformedereexivitequi poseleproblemedelamodicationeventuelledel'attributest-un. 5.Notonsqueladenitiond'unesous-classeestegalementunedescriptiondierentielle. 4

5 Animal Animal-marin Baleine Mobby-Dick est-un Frame nom:"animal" milieu:terrestre nourriture:nourriture nbpattes:4 poids:10 Frame nom:"animal-marin" est-un:animal milieu:marin nourriture:n-marine nbpattes:0 nbnageoires:4 Frame nom:"baleine" est-un:animal-marin nourriture:plancton couleur:bleu poids:10000 ennemi:homme Frame nom:"moby-dick" est-un:baleine couleur:blanc ennemi:cpt-haccab Fig.3{Exempledehierarchiedeframes. 3.2Langagesd'acteurs L'ideederepresenterdesentitesdumondepardesobjetssansclassesaegalementeteappliquee danslelangageact1[lieberman,1981],bienqu'ilnesoitfaitmention,danslesarticlesrelatifsa celangage,nidelanotiondeprototypenidel'utilisationquiapuen^etrefaitedansleslangages deframesquiluisontanterieurs6,telquekrl.ontrouvecependantdansact1desideesetdes mecanismesassezsimilairesaceuxevoquesprecedemmentainsiqu'unepartdescaracteristiques essentiellesdeslangagesaprototypesactuels. Structured'unacteur.Lesobjetsdansact1sontappeles(acteurs),ilspossedentdes attributs(appelesaccointances)referencesparunnometpossedantunevaleur.act1estunlangage deprogrammation,lesacteurssontdoncegalementdotesdecomportements(nousutilisonslestermes classiquesde(methode)pourdesigneruncomportementetceluide(propriete)pourdesigner indiferemmentunattributouunemethode).lesmethodespeuvent^etreinvoqueesenenvoyantdes messagesauxacteurs7. Unacteur,objetsansclassenepouvant^etrecreeparinstanciation,estcreeparcopieouextension d'unacteurexistant.lagure4montreunacteur8appelepointpossedantdeuxattributsxety etunemethodenormcalculantladistancedecepointal'origine.troisprimitivescreate,extend etc-extendpermettentdecreerdenouveauxacteurs[briot,1984].cesontcestroisprimitiveset lamiseenuvredelacopiedierentiellequinousinteressentici.nousendiscutonsautraversdes exemplesproposesdans[briot,1984]. Clonage. Bienquedesprimitivesdecopied'objetsaientexistedansleslangagesaclasses(parexempleen smalltalk)anterieurementaact1,celangageaintroduitlacopiesupercielle9(primitivecreate), ouclonage,commemoyenprimitifdecreationd'objets.laprimitivecreatepermetainsidecreer point2parcopiedepoint(fig.4),despecierdenouvellesvaleursdeproprietes,parexemplexet y,etd'endenirdenouvelles,parexemplelamethodemove. Extensions.Lacreationpardescriptiondierentielleenact1estconceptuellementsimilairea celledesframes.elles'eectueenenvoyantaunacteurexistantlemessageextend,quicreeunnouvel acteur,quenousappelleronsdonc(extension)dupremier,luim^emeappeleenact1lemandataire 6.Cecipeut^etred^uenpartieaufaitqu'iln'estpasevidentd'isolerclairementl'utilisationfaitedesprototypes danskrl.d'autrepart,l'objectifdeact1,mettreenuvreunoutildeprogrammationparalleleabased'objets,est notablementeloignedeceluidekrl. 7.Cettevisionestsimplicatricemaisnoussutici;enfait,lescomportementsd'unacteursontregroupesausein d'unscriptetl'invocationpeutfaireintervenirunmecanismedeltrage. 8.Creeparextensiond'unacteurpre-deni. 9.Al'inversedelacopieprofonde,lacopiesuperciellenecopiepaslesobjetscomposantl'objetcopie. 5

6 (object'extend'point '((norm(lambda()...)))) '((x5)(y10)) point point2 (point2'extend'tortue (point'create'point2 x 5 3 x '((heading0)(y4)) '((x3)(y30)) y y '((forward(lambda(...)...)))) '((move(lambda(newxnewy) (setqxnewxynewy)))) norm calcul de la norme norm deplacement move tortue (proxyenanglais)dunouvelacteur;c'estl'equivalentduprototypeoududesframes.la Fig.4{Clonageetextensionenact1. (proxy) 90 heading methode 4 y extensiondel'acteurprecedentpoint2quidevientsonmandataire.unetortueestcommeunpoint gure4montreladenitiondel'acteurnommetortuerepresentantunetortuelogo10commeune acquointance deplacement oriente forward maispossedeenplusuncapetunemethodeforwardluipermettantd'avancerdansladirection denieparsoncap. possedepaslaproprietedemandee,auquelcaslesystemedemandeasonmandatairederepondreasa.l'heritageestmisenuvrelorsqu'unacteurnesaitpasrepondreaunmessageparcequ'ilne place.lemandataireestainsihabilitearepondreaunmessageenlieuetplacedesesextensions.ce esttoutafaitsimilaireaulienest-undesframes.l'extensionpeutheriterdesproprietesdeson Heritageetpremiereformededelegation.Lelienreliantuneextensionasonmandataire aprototype. dansl'ombreunpointimportantdelaproblematiquedeslangagesaprototypes(cf.paragraphe5.1) quoiqu'ilensoitdansact1unepremiereformedecequideviendraladelegationdansleslangages passageducontr^oleaumandataireestappele(delegation)11.lesarticlesdecrivantact1laissent enneprecisantpaslecontexted'executionunemethodeapresqu'ilyaiteuunedelegation.ontrouve leliendedelegationentreunetunedesesextensions: Copie-extension.Unedescaracteristiquesdeshierarchiesd'objetestladependancequ'etablit Lesproprietesdusontpartageesparsesextensions.Pourpermettrelacreationdierentielle d'unnouvelacteurindependant,unetroisiemeprimitivedeact1,nommeec-extend,composeun (mon)sontaussilesmiens.)[briot,1984] (Lesaccointances(lesattributs)etlescript(l'ensembledesmethodes)demonmandataire clonage12etuneextensionduclone. 4mationparprototypes.Lesetudesrelativesal'introductiond'objetssansclassesdansleslangages Ontrouvedanslessystemesquenousvenonsdedecrirel'essencedecequiaeteappeleprogram- Motivationsetinter^etsdelaprogrammationparprototypes (...),hedelegatesthemessagetoanotheractor,calledhisproxy)).[lieberman,1981] deprogrammationparobjetsonteterealiseesaumilieudesannees80.ellesvisaientaproposerdes clone-tortueaclone-point2parunlienest-unetenncreerlenouvelobjetparextensiondeclone-tortue.cet traitscolores)commeune((c-extension))del'acteurtortue,ilfautd'abordclonerpoint2puisclonertortue,lier 12.Notonsquececlonagepeut^etrecomplexe:sil'onsouhaiteparexemplecreerunetortuecoloree(tracantdes 11.((Wheneveranactorreceivesamessagehecannotanswerimmediatelyonthebasisofhisownlocalknowledge 10.C'estadirerepresentantunrobotsedeplacantdansleplantoutentracantuntraitsursonpassage. exempleintroduitleproblemeduclonaged'unobjetplacedansunehierarchied'objets(cf.paragraphe8.3). 6

7 1986]etleslimitationsquecelles-ciimposententermederepresentation. lesflavors.cesetudesportaientenpremierlieusurlacomplexitedumondedesclasses[borning, alternativesaustyleusueldeprogrammationparclassesutiliseavecsimula,smalltalk,c++ou estapparucommeunepossibilitedereduirecettecomplexite(langagesplussimples)etderel^acher montreenquoilesprototypessontunesolutionpotentielleacesproblemes. lescontraintesportantsurlesobjets.ceparagrapheillustrelesproblemesqueposentlesclasseset Experimenterunmodeledeprogrammationparobjetss'appuyantsurlatheoriedesprototypes 4.1Descriptionsimplieedesobjets modeledeprogrammationplusprochedelademarchecognitive,s'appuyantsurlesexemples,attribueeal'humainfaceaunproblemecomplexe.unlangageaprototypespermetladescriptionetla derepresentants(d'exemples,d'instances)dececoncept.leslangagesaprototypesproposentun man,1986],l'accumulationd'exemplesmenantatermeaunegeneralisation.orlemodeleaclasses obligeleprogrammeuraformaliserunconcept,uneabstraction,avantdepermettrelamanipulation Leprocessusderaisonnementhumainfaitsouventpasserl'exempleavantl'abstraction[Lieber- 4.2Modeledeprogrammationplussimple manipulationd'objetssansl'obligationprealabled'avoiradecrireleurmodeleabstrait. del'encapsulationetsupportal'implantationdetypesabstraits,al'organisationdesprogrammes,a rendreleurconception,leurmiseenuvreetleurmaintenancedicile.notonsparmicesr^oles: descripteurdelastructuredesinstances,bibliothequedecomportementspourlesinstances,support 1989],parcequelesclassesyjouentdierentsr^olesqu'ilestparfoisdicilededissocieretquipeuvent Lemodeleaclassesestcomplexe[Borning,1986;LaLondeetal.,1986;Lalonde,1989;Steinetal., lamodularite,aupartageentredescriptionsdeconcepts,alareutilisation.deplus,lem^emelienentre Enn,dansunsystemeintegrantdesmeta-classes(commesmalltalkouclos),laclassesevoitde [Lalonde,1989]:heritagedespecications,heritaged'implantations,sous-typageouressemblance13. classesestutilisepourmodeliserdierentesrelations,entreconceptsouentretypesabstraits(suivant lavisionquel'onad'uneclasseauninstantdonne),subtilementdierenteslesunesdesautres objets,etplusencorelareutilisationdeprogrammesexistants. plusdoteedur^oled'instance,pouvantrecevoirdesmessagesetmener,sil'onpeutdire,sapropre vie.la(sur-utilisation)dum^emesupport(laclasse)tendarendrecomplexelaprogrammationpar derealiserdesprogrammesennemanipulantqu'uneseulesorted'objetsprivesdur^olededescripteur.cetteideesupposequeparmilesdierentsr^olesjouesparlesclasses,certainssontsoitnon indispensablessoitmodelisablesautrement. Dececonstatestissuel'ideederechercherd'autresformesd'organisationpourlesprogrammes etd'autresmanieresderepresenterlesobjets.l'ideeinitialedelaprogrammationparprototypesest 4.3Expressivite rel^achercertainesdescontraintesquipesentsurleursinstances.lesprototypesautorisentnotamment exempledanskrl,pourlasouplessederepresentationqu'ilsautorisent.l'absencedeclassespermetde l'expressiondupartagedevaleursd'attributsentreobjets,l'evolutionaiseedeleurstructureainsique ladenitiondecaracteristiquesdistinctespourdierentsobjetsd'unem^emefamilleconceptuelle, Lesprototypesonteteutilisesdansdenombreuxlangagesderepresentationdeconnaissances,par l'expressiondeconnaissancespardefaut,incompletesouexceptionnelles.ladescriptiondecertaines permetderesoudre.envoiciunelistenonexhaustive. connaissancespose,dansunlangageaclasses,desproblemesquelaprogrammationparprototypes ordonneesquelconques(bag):((asetislikeabagexceptthatduplicatesarenotallowed))[lalonde,1989]. 13.Parexempleensmalltalk,laclassedesensembles(Set)estunesous-classedelaclassedescollectionsnon Instancesdierencieesouexceptionnelles. 7

8 instance superclass Classe Personne... (superclasse) (nom) "Personne" (var. inst.) adresse age nom (methodes) (vieillir) pierrepersonne vieillir adresse age nom (lambda()age := age + 1) 8 rue Octave 30 Pierre Classe Employe Classe Sportif lien "Employe" "Sportif" ^age. Fig.5{Duplicationdelavaleurdelapropriete Fig.6{Partagedepropriete. adressep grade endurance poids () () pierreemployé pierresportif i1 i2 8 rue Octave 8 rue Octave adresse P Univ... endurance ;Dony,1989]ayantdescaracteristiquespropresquelesautresobjetsdelam^emefamillen'ont Consideronsenpremierlieulecasdesinstancesexceptionnelles[D.Etherington,1983;Borgida, grade... poids... alternativesexistentpourdenirdesproprietesauniveaud'unobjet,ellessontresteesmarginales14. quisaitvoler,oulalistevidedontlesmethodescaretcdrs'implantentdieremmentdecellesdes pas.lamanierestandardderepresenteruneinstanceexceptionnelle,parexemplejumbol'elephant exemple,desclassesn'ayantqu'uneseuleinstance:true,falseouundefinedobject.m^emesides listesnonvides,estdecreerunenouvelleclassepourlesrepresenter.ontrouve,ensmalltalkpar afaitnaturelledansunlangageaprototypes.lapossibilitedenepascreeruneclassepourchaque basesurladescriptiond'individus.onpeutparexempleydenirl'elephantsachantvolerparclonage d'unautreelephantetajoutdelapropriete.larepresentationdebooleensevoqueeci-dessusesttout instanceexceptionnelleestparticulierementinteressantelorsquecelles-cisontnombreuses(onpeut Larepresentationd'objetsexceptionnelsposeevidemmentmoinsdeproblemesdansunlangage Fleury,1993]). penserparexemplealamodelisationdesreglesdelagrammairedelalanguefrancaise[habertet tributs.posonsleproblemedelarepresentationd'unepersonneetdediverspointsdevuessurcette personne,parexemplelepointdevue(employe)oulepointdevue(sportif).iln'existepas Lemodeleaclassesnepermetpasadesinstancesdepartagerdesattributsoudesvaleursd'at- Representationdepointsdevuesd'unem^emeentite. desolutionstandarddansunlangageaclassespourresoudreceprobleme.leschemaclassiquede specialisationdelaclassepersonnedenissantunattribut^age,pardeuxsous-classesemployeet Sportif(Fig.5),nerepondpasalaquestioncardeuxinstancesrespectivesdecesdeuxsous-classes represententdesentitesdierentesindependantesentermed'etat;sil'^agedel'unechange,l'autre n'estpasaecte.d'autressolutionsstandardaceprobleme(utilisantdesconstructionspresentes danslamajoritedeslangagesaclasses)sontinsatisfaisantes;decrivons-enquelques-unes. {Onpeutimaginerutiliserlacomposition:redenirlesclassesSportifetEmployenonplus commedessous-classesdepersonne,maiscommepossedantunevariabled'instancedetype recherchedemethodecommeparexemplelequalieur((eql))declos;d'autresnecessitentdesconstructionsspeciales derepresentation:ilestsouventpossibled'adapter,dansuneimplantationdonnee,lemodeleaclassespourluifaire fairecequel'onsouhaite.certainesdecesadaptationsnedenaturentpaslemodelemaisaectentl'ecacitedela 14.L'expression((poserprobleme))quenousavonsemployeenedenoteeneetpasnecessairementuneimpossibilite Personne.Leproblemeestalorsreportesurl'accesauxattributsetauxmethodesdelaperintrinsequementcontradictoiresaveclemodele(devraiesinstancesdierenciees[Steinetal.,1989]parexemple)et etlerendentpluscomplexecommelespatternsd'objetsdulangagebeta[kristensenetal.,1987];d'autresennsont fontqueleresultatdel'adaptationengendred'autresproblemessemantiques. 8

9 sonne:commentdemanderaunsportifson^age?d'unepart,ilyaunproblemed'l'attribut ^ageestprive,d'autrepart,ilestnecessairederedenirtouteslesmethodesdepersonnesur EmployeetSportifand'ymettreunere-expeditiondemessage15. {UnesecondesolutionconsisteacreerunenouvelleclasseEmployeSportif,sous-classede EmployeetdeSportif.Ledefauticiestquelahierarchieresultantepeutdevenirrapidementinexploitablesil'onsouhaitecreerdemultipleextensionsdelaclassePersonneetles combiner. {Lesvariablesdeclassesalasmalltalkouleursequivalentspermettentadesinstancesde partagerdesvaleursmaislaporteedecesvariablesesttroplarge,denirunetellevariableau niveaudelaclassepersonneconferelem^eme^ageatouteslesinstancesdepersonne,sportif etemploye. Enfaitlarepresentationd'objetsmanipulablesselondiverspointsdevuesnecessite,dansun langageaclasses,desmecanismesspeciquestelsquela(multi-instantiation)derome[carre,1989], ouceuxdeveloppesdanstropes[mari~noetal.,1990].dansunmondedeprototypes,l'heritageentre objetspermetderepondresimplementalaquestionposee(fig.6).deuxobjetsrepresentantlapartie (employe)etlapartie(sportif)delapersonnepeuvent^etredeniscommedesextensionsdel'objet representantla(personneprimitive)etdetenantl'attribut^age;cetattributetdoncsavaleuretant alorspartagesparlestroisobjets. Objetsincomplets. Lapossibilitepourunobjetd'heriterlesvaleursdesattributsd'unautreobjetestutiliseeintensivementdansleslangagesdeframespourrepresenterdesobjetsincompletsi.e.desobjetsdont certainesvaleursd'attributsnesontpasconnuesmaisdontdesvaleurspardefautpeuvent^etretrouveesdanslesobjetsdontilsheritent.parexemplesioncherchecequemangemoby-dick,ontrouvera unevaleurdansleframebaleinedontmobby-dickherite(cf.fig.3).lesvaleursheriteespeuvent changeraugredel'evolutiondessd'unobjet. Cettepossibilitedemanipulationd'objetsincompletsnepeut^etrecompareealapossibilitede specier,dansladenitiond'uneclasse,desvaleursinitialespourlesdierentsattributsdesesfutures instances.cesvaleurssontutiliseesal'instanciation,iln'existeensuiteplusaucunerelationentreun objetetsaclassepourcequiconcernelesvaleursdesattributs.nepasavoird'indirectionsdansl'acces auxattributsestlegaged'unecompilationecace;ilnecachepasuneimpossibilitederepresentation lieeaumodeleaclasses16. 5 Premierespropositionsdelangagesaprototypes 5.1Langagesfondessurlesinstancesprototypiquesetladelegation HenryLiebermanareprisdans[Lieberman,1986;Lieberman,1990]certainesideesdeact1pour lesappliqueralaprogrammationparobjets.ilaproposeunmodeledeprogrammationbasesur lesinstancesprototypiquesetl'amisenuvreulterieurementdanslelangageobject-lisp[allegro CommonLisp,1989].Lagure7proposeuneversionobject-lispdel'exemple(point-tortue) presenteauparagraphe3.2.lepremierexempleconcretd'unconcept(point)sertdemodelepour denirlessuivants.lesnouveauxobjetssontcreesparextensionavecunequivalentdelaprimitive extenddeact1.uneextensionpossedeunlienest-unverssonprototype.lesobjetspossedentdes attributsetdesmethodes;ilscommuniquentens'envoyantdesmessages(primitiveask).iln'existe pasdemecanismed'accessiblesparenvoidemessage((asktortuex))oudirectementdanslecorps desmethodes.lemecanismededelegationestmisenuvreaussibienlorsdel'accesalavaleur d'unevariablequepourl'activationd'unemethode:silaproprieten'estpastrouveechezlereceveur alorslademandeestdelegueeason. 15.Lecorpsdelamethode^agedeSportifestunenvoidumessage^ageauneinstancedePersonne. 16.Ilestevidemmentpossibled'implanterunetellerelation,cequiaetefaitparexempledanscertainslangagesde representation[rechenmann,1988] 9

10 (defobfun(normpoint)() (defobfun(movepoint)(newxnewy) (askpoint(have'y10)) (setqpoint(kindof)) (askpoint(have'x3)) (sqrt(+(*xx)(*yy)))) ;Lesvariablessontcellesdureceveur. ;Creationd'unattributpourpoint. ;Unemethodenormpourl'objetpoint. ;Unemethodeavecparametres, ;Creationd'unobjetexnihilo. (defobfun(plusapoint)(p) (let((newx(+x(askpx))) (askself(have'y(+ynewy))) (askself(have'x(+xnewx)) (newp(kindofapoint))) (newy(+y(askpy))) ;creationd'uneextensiondel'objet ;Modificationdesvaleursdesattributs. ;Unemethoded'additiondedeuxpoints. ;pouradditionnerdeuxpoints. (askpoint2(have'y4) (setqpoint2(kindofpoint)) newp)) (asknewp(have'ynewy)) (asknewp(have'xnewx)) ;avecunnouvelattributy. ;point2estuneextensiondepoint, ;passeenargument. (defobfun(forwardtortue)(dist) (asktortue(have'cap90)) (setqtortue(kindofpoint2)) ;avecunnouvelattributcap, ;Uneextensiondepoint2, object-lispestuneextensiondelispverslesobjetsautorisantl'envoidemessagesainsiquel'appelfonctionnelclassique.l'envoidemessageestrealiseparlafonctionask;sonpremierargumentestlereceveuret (askself(move(*dist(coscap)) (*dist(sincap)))) ;etunemethodeforward. lesecondunappelfonctionneloulenomdefonctionfaitguredeselecteurdumessage(ildoitexisterune {denitiondemethodes:fonctiondefobfun, {creationd'extensions:fonctionskindof(avecunargumentquiestl'objetetendu), primitivessuivantessontutiliseesdansl'exemple: {creationd'objets((exnihilo)):fonctionkindofsansarguments, methodecorrespondantacenom);lesargumentsdel'appelfonctionnelsontlesargumentsdumessage.les {denitiond'attributs:methodehave. dynamique.lemecanismeestconceptuellementparfaitementsimilaireaceluideslangagesaclasses17 Lepointveritablementnouveauparrapportaact1estl'explicitationdumecanismedeliaison Fig.7{Unexempledelangageaprototypes{object-lisp. contextedureceveurinitial(tortue),cequidonne,viadeuxnouvellesdelegations,3pourxet4 poury. trouveedansledureceveur(point2)maisl'accesauxvariablesxetyestinterpretedansle.dansnotreexemple,l'envoidumessagenormatortuerendainsilavaleur5,lamethodenormest developpementetd'unelargediusion. leplusconnu;iladonnelieuauplusgrandnombredepublications,abenecied'ungroseortde tiques:citonsparexempleself,garnet,newton-scriptoumoostrap.selfestcertainement Uncertainnombredelangagessontissusdecemodeleetont,alabase,lesm^emescaracteris- 5.2Langagesfondessurlesinstancesprototypiquesetleclonage delapauvretedumodeleainsiobtenu,borningproposaitdel'etendreeninstaurantunecertaine eectuee,aucunerelationn'estmaintenueentreleprototypecopieetsonclone.conscienttoutefois etlesnouveauxobjetssontproduitsparcopiesetmodicationsdeprototypes.unefoislacopie sansclassesorganiseautourduclonage.unprototypeyrepresenteunexemplestandardd'instance Alam^emeepoque,[Borning,1986]aproposeunedescriptioninformelled'unmonded'objets auteurmaisainspireleslangagesaprototypesbasessurleclonagecommekevo[taivalsaari,1993], formed'heritageabasedecontraintes[borning,1981].cemodelen'apasetedeveloppeparson sesapplicationsal'ecrituredemethodespolymorphes,connudulecteur. initialdumessage,etce,quelquesoitl'endroitoulamethodeaetetrouvee.noussupposonscemecanisme,ainsique 17.Ilpermetaucoded'unemethoded'^etreinterpretedanslecontextedesattributsetdesmethodesdureceveur 10

11 omega[blaschek,1994]ouobliq[cardelli,1995]. grammes:pourcontournerleslimitationsquenousavonsevoquees,aeteimagine[lalondeetal., 5.3Langagesintegranthierarchiesdeclassesethierarchiesd'objets. par(exemplaires))doteesd'unecertaineautonomie.laprincipaleraisond'^etredecetteproposition mationintegrantdesclassesetdesinstances(appelescettefoisexemplars,cequel'onpeuttraduire 1986;Lalonde,1989],alam^emeepoqueetparallelementaceluideLieberman,unmodeledeprogram- Leproblemeaegalementeteabordeplusdirectementsousl'angledel'organisationdespro- etaitd'experimenterundecouplageentreunehierarchiedesous-typage,composeedeclassesetune hierarchiedereutilisationd'implantations,composeed'instances.lesclassesdetiennentl'interface desversionsdierentesdelamethodeappend,maislesdeuxinstancesontlam^emeinterfacedenieparlaclasse.parailleurs,uneinstancepeutheriterden'importequelleautreinstancecertainement.parexemplelaclasselisteauneinstancelistevideetuneautrelistenonvidepossedant unehierarchiededelegation.l'heritagedesmethodessefaitentreinstances,celuidesspecications entreclasses.uneclassepeutdoncavoirdeuxinstancespossedantdesmethodesimplanteesdierem- destypesabstraitsqu'ellesimplantent.lesinstancesdetiennentlesmethodesetsontorganiseesen methodespriveesnecessairesal'implantationdesmethodescomposantsoninterface.parexemple entreinstancesn'estpasnecessairementisomorpheacelled'heritageentreclasses. dictionnaireestimplantecommeunensembledecouples(cles{valeurs).lahierarchiededelegation maisuneinstancededictionnairepeutheriterd'uneinstancedelaclasseensemblelorsquequ'un laclassedictionnairen'estlogiquementpasdeniecommeunesous-classedelaclasseensemble, instancesesttoutafaitsimilaireaceluiproposeparliebermanetadoncinspireaum^emetitreles etl'heritageentreinstances.cetteetuderestecependantinteressante.d'unepart,l'heritageentre langagesaprototypesulterieurs.d'autrepart,elleproposaitunepremieretentatived'utilisationde auteursl'ontd'ailleursabandonnee,n'ayantpasreussiafairelasyntheseentreler^oledesclasses Cettepropositionposeuncertainnombredeproblemesqu'ilseraittroplongdedecrireici;les ladelegationdansunmondedeclasses,ideequirevientaujourd'huial'ordredujour. mondedediealarepresentationetfondesurlesframescommeyafool[ducournau,1991].onpeut donclesassimilerauxlangagesaprototypes.l'originalitedeceslangagesparrapportaceuxquise 5.4Langagesdeframespourlaprogrammation voulaientuniquementbasessurlesinstancesprototypiques(commeselfouobject-lisp)estqu'ils permettentdedenirdeshierarchiesintegrantdesrepresentantsmoyens(commeanimal)comme Certainslangages,ditshybrides[Masinietal.,1989],autorisentladenitiondemethodesdansun 6celledelagure3.Nousverronsquelesconcepteursdelaplupartdeslangagesaprototypesontd^u reintroduirecettepossibilite. deslangagesaprototypes. Voiciunesynthesedespropositionsprecedentesquipermetd'isolerlesconceptsfondamentaux Recapitulatifdesconceptsetmecanismesprimitifs desobjetsconcrets,acheparselfparexemple,n'estpasgeneralise,nousavonsvuqu'ilexistait deslangagespermettantdemanipulerdesrepresentantsmoyens.certainsauteursparlentegalement d'objetsautonomesmaiscettecaracteristiquen'estpasgeneraleenprogrammationparprorotypes;les estdenepas^etreliesauneclasse,denepasavoirdedescripteur.l'objectifdenemanipulerque Objetssansclasses.Lacaracteristiquecommuneatouslesobjetsdeslangagesaprototypes objetsnesontpasnonplusveritablementautonomesdeslorsqu'ilssontcreescommedesextensions d'autresobjets. Etatetcomportements.Lesobjetssontdenisparunensembledeproprietes.Unepropriete 11

12 estalabaseuncouple(nom18{valeur19).lesproprietessontsoitdesattributs,auquelcasla valeurestunobjetquelconque,soitdesmethodes,lavaleurestalorsunefonction. Envoidemessages.Lesobjetscommuniquentparenvoidemessages;ilssontcapablesde repondreauxmessagesenappliquantundeleurscomportements(oueventuellementenrendant lavaleurd'undeleursattributs).ilspeuvent^etrevuscommedesframessansfacettesdotesde proceduresetrepondantadesmessagescommelesacteursact1. Troisformesprimitivesdecreationd'objets.Lesobjetspeuvent^etrecreessoitexnihilo, soitencopiantunobjetexistant(clonage),etdanscertainslangagesenetendantunobjetexistant (extensionoucreationdierentielle). Heritage.Danslecasdelacreationdierentielle,unnouvelobjetestcreecommeuneextension d'unobjetexistant,quidevientson.larelation(est-extension-de)lielenouvelobjetetson.ils'agitd'unerelationd'ordrequidenitdeshierarchiesd'objets.dansunehierarchie,une extensionheritelesproprietesdesonquin'ontpaseteredeniesasonniveau.siunepropriete heriteeestunattributalorsl'extensionpossedecetattribut,sic'estunemethodealorselleluiest applicable.larelationestmaterialiseeparunlienappelelien()ou(liendedelegation).ce lienestparfoisaccessibleauprogrammeur;enselfparexemple,chaqueobjetpossedeaumoinsun attributnommecontenantl'adressedeson. Delegation.Ladelegationestlenomdonneaumecanismequimetenuvrel'heritage,c'est- a-direquichercheetactiveuneproprieteheritee.ladelegationestgeneralementimplicite20[stein etal.,1989;donyetal.,1992].danscecas,leterme(deleguer)estuneimage;danslapratique, lesysteme,lorsqu'ilnetrouvepasdeproprietedanslereceveurdumessage,larecherchedansses ssuccessifsets'illatrouve,l'active21 Liaisondynamique.Leslangagesaprototypessontdeslangagesoulesschemasusuelsde reutilisationdeslangagesaobjetss'appliquent.ainsi,l'activationd'uneproprietes'eectuetoujours danslecontextedureceveurinitialdumessage.danstoutemethode,lavariableself(ouunequivalent)designel'objetquiaeectivementreculemessageetnonceluiaquionl'adelegue(i.e.celui oulamethodeaetetrouvee).l'accesaunattributoul'envoid'unmessageaselfnecessitentdonc unmecanismedeliaisondynamique. Nousavonsacepointdel'exposeuneideegeneraledecequesontleslangagesaprototypes etlespossibilitesnouvellesqu'ilsorent.leslangagesexistantsproposentneanmoinsunensemble devariationssubtilesautourdesconceptsquenousavonspresente.cesvariationsresultentd'une partd'interpretationsdierentesdonneesauxconceptsprecedents(parexempleaceluid'extension)et d'autrepartalanecessite,pourlesconcepteurs,deresoudredesproblemesnonenvisagesinitialement (commeceluidelagestiondeproprietescommunesadesensemblesd'objets). 7 Caracterisationdesmecanismesetinterpretationdesconcepts Lespoints,sourcesdeconfusions,quireclamentplusparticulierementdesprecisionssont:la caracterisationdeladierenceentreclonageetcreationdierentielle,lacaracterisationdeladierence 18.Uneproprieteestuniquedanslesystememaisplusieursproprietespeuventavoirlem^emenom(c'estcequenous appelons((surcharge))). 19.Uneproprietepeutegalementpossederuntype,undomaine,unesignature,desfacettes,etc. 20.Dansl'autrealternative,ladelegationexplicite,l'objetdisposed'unmoduledereceptiondesmessagesetchoisit lui-m^emelaproprieteaactiveroudeleguelui-m^emelemessageaunautreobjet.ladelegationexpliciteestciteedans certainsarticles[steinetal.,1989]etestutiliseedansact1maisnousneconnaissonspasdelangagesaprototypes quil'utilisent. 21.Lelecteurtrouveradans[Malenfant,1995]unedescriptionformelledelasemantiquedumecanismededelegation pourunlangagealaliebermanetdanslaplate-formeprototalk[donyetal.,1992]unemiseenuvred'evaluateurs correspondantsqu'ilpourraetudier,etendreetmodierasaguise.prototalkestuneplate-formesmalltalkpermettant desimulersimplementlaplupartdeslangagesaprototypes;elleestdisponibleal'adresse:http://www.lirmm.fr/ ~dony/research.html. 12

13 x y Point2 dessiner déplacer y 5 Point1 dessiner déplacer x (a):point2estobtenuparclonagedepoint1 x y dessiner déplacer Point1 x y dessiner déplacer 3 Point2 (b):apresmodicationdelavaleurdexdepoint2 x y dessiner déplacer Point1 x y dessiner déplacer Point2 couleur rouge (c):apresajoutdelapropriete couleurdanspoint2 Fig.8{Clonage:partageponctuel entrel'heritagedansleslangagesaclassesetdansleslangagesaprototypes,etennlacomprehension desdiversesutilisationspossiblesduconceptd'(extension).noscaracterisationssontfondeessur l'heritageetlepartage,cequiestpartageouheriteestrelatifauxproprietes.ondistinguetrois formesdepartage22. {Ilyapartagedenomslorsquedeuxobjetsontchacununeproprietedem^emenom. {Ilyapartagedevaleurslorsquedeuxobjetso1eto2ontchacununeproprietedenomxetque lavaleurdelaproprietexdeo1etdeo2estlam^eme(egalitephysique). {Ilyapartagedeproprietes23lorsquedeuxobjetspossedentlam^emepropriete(m^emeadresse etdoncm^emenometm^emevaleur).ilpeutyavoirpartagedevaleurssansqu'ilyaitpartage deproprietes. 7.1Distinctionentreclonageetextension Ladistinctionentreclonageetextension,montrantquecesdeuxmecanismesnesontpasredondants,provientdecequeleclonageetlacreationdierentielleinduisentdeuxformesdepartage distinctes[donyetal.,1992]. Unecaracterisationduclonage.Toutobjetclone,partageavecsonclone,aumomentou celui-ciestcree,lesnomsetlesvaleursdesesproprietes.lecloneetsonoriginalevoluentindependamment,lamodicationd'unattributdupremiern'estpasrepercuteesurlesecond:lepartageest ponctuel.eneet,toutnomdepropriete,parexemplex,y,deplaceroudessiner(fig.8.a)de l'objetclone,point1dansnotreexemple,estaussiunnomdeproprieteduclone(point2)et,les deuxproprietesdesigneesparchaquenomontlam^emevaleur.maisilyabiendeuxproprietes;par exemple,sil'onmodielavaleurdelaproprietexpourpoint2,lavaleurdelaproprietedem^eme nomdepoint1n'estpasmodiee(fig.8.b);idemencasd'ajoutouderetraitdepropriete.(fig.8.c). Caracterisationdumecanismed'extension.Unobjetdansunehierarchied'objetsherite desessunensembled'attributsetdemethodes.toutpartageavecsesextensions lesproprietes24qu'ildenitetquecesderniersn'ontpasredenies.lesproprietesdunon redeniesdansuneextensionsontaussidesproprietesdel'extension.l'extensionestdependantede son25.cettedependanceetcepartagesontpersistants,ilsdurentaussilongtempsqu'existe lelienentrelesdeuxobjets.reconsideronsl'exempledelagure4danslequell'objettortueapour l'objetpoint2.tortuenedetientpaslaproprietexmaisheritecelledetenueparpoint2. 22.Unedescriptionplusdetailleeetplusformelleenestdonneedans[BardouetDony,1996]. 23.L'ideededierencierlepartagedenomsdupartagedeproprietesestinspireedeladistinctionentreheritagede nomsetdevaleursintroduitedans[ducournauetal.,1995].lesdeuxdistinctionsn'ontenfaitpasgrandchoseen communcarellesontfondeessurdesinterpretationsdierentesdelanotiondepropriete. 24.Cequiestheriteetantidentiquepourlesattributsetlesmethodes,ilestpossibled'unierlesdeuxsortesde proprietes;c'estcequ'ontfaitlesconcepteurdeself.onnetrouveenselfquedesslotsdontlesvaleurspeuvent eventuellement^etredesfonctionsexecutables,onyaccededanstouslescasparenvoidemessage;lorsquelavaleur d'unslotestunefonctionalorselleestexecutee. 25.Lareciproque,asavoirl'independanceduvis-a-visdesesextensionsseradiscuteeauparagraphe

14 modicationdelavaleurdecetteproprietepourpoint2aecteegalementl'objettortue. Cetteproprietedenittoutautanttortuequepoint2,elleestpartageeparlesdeuxobjets.Toute (ponctuelpourleclonage,persistantpourl'extension).leursapplicationssontdistinctes. 7.2Caracterisationdeladierenceentrehierarchiesd'objetsethierarchiesdeclasses Lesdeuxmecanismesinduisentdoncdespartagesdistinctsavecdesdureesdeviedierentes (hierarchiesdedelegation)afaitl'objetdeplusieurstravaux.d'apreslieberman,ladelegationest unmecanismeplusgeneralquel'heritagedeclasses,ellepermetdelesimuler.dans[stein,1987],il L'etudecomparativedel'heritagedansleshierarchiesdeclassesetdansleshierarchiesd'objets savoirqueladelegationestequivalenteal'heritagedansleshierarchiesdeclasses. castresparticulier.cetarticlenemontreparailleurspasdutoutcequesontitrelaissesupposer,a etdeseservirdesvariablesdeclassealasmalltalkpourrepresenterlesproprietes,cequiestun estmontrequelasimulationinverseestpossibleaconditiond'utiliserlesclassescommedesobjets lavaleur.deuxobjetsdontlesclassessontliesparunlien(sous-classe-de)partagentdoncdes aucunpartaged'attributsentreinstances26.unobjet,instanced'uneclassecpossede,viasaclasse: partunensembledenomsd'attribut(declaresdanslessuper-classesdec)dontildetientenpropre d'unepartunensembledemethodes(declareesetdeniesdanslessuper-classesdec)etd'autre Enfaitlesdeuxformesd'heritagessontdistinctescarl'heritagedansleslangagesaclassesn'induit oertesparleslangagesaprototypes(cf.paragraphe4),maisaussideproblemesnouveaux. caracteristiquedeshierarchiesd'objets;ilestal'originedespossibilitesnouvellesderepresentation methodesmaisuniquementdesnomsd'attribut.cesobjetssontindependantsentermed'etats. Lesdeuxformesd'heritagenesontdoncpasequivalentes.L'heritaged'attributsentreobjetsest qu'enest-ildelareciproque?unest-ildependantdesesextensionsouend'autrestermes, uneextensionpeut-elle,ensemodiant,modieraussison?leproblemeseposelorsque 7.3Variationssurladependanceentre(s)etextensions l'ondemandeaunobjet(parenvoidemessageouparunautremoyen)demodierlavaleurd'un attributqu'ilherite.deleguerounepasdeleguerlesaccesenecritureauxattributs,telleestla L'heritaged'attributsinduitunpartagequirenduneextensiondependantedeson,mais question.consideronsparexemplel'envoiatortuedumessagemove,quiprovoquel'activationdela methodemovedetenueparpoint2,laquelleaccedeenecritureauxattributsxetydureceveurinitial (liaisondynamique);cedernier(tortue)nedetenantenproprequel'attributy.commentinterpreter l'aectation(x:=newx)?lareponseacettequestiondependdel'interpretationquel'onadela notiond'extensionetdespossibilitesquel'onveutorir.leslangagesaprototypesdivergentsurce point. enecritureauxattributs.l'aectationestalorsrealiseedanslecontextestrictdureceveurinitial: l'aectationproprementdite.dansnotreexemple,l'aectationdelavariablexseraprecedeeparune redenitionautomatiquedelaproprietexsurtortue. lorsquecelui-cinepossedepasl'attributconsidere,cetattributdoit^etrecreeavantlarealisationde InterpretationNo1.Deslangagestelsqueyafoolougarnetnedeleguentpasl'acces avecsesextensionsuniquementlenometlavaleurdesesproprietesnonredenies.ellerendle completementindependantdesesextensions27. Cettesolutionlimitelepartaged'attributsentreobjetsadupartagedevaleurs:lepartage ainsiadapteealamiseenuvredel'exemple(point-tortue)danslequeldeuxentitesdierentes, senteeparle,duquelelleheriteneanmoinscertainescaracteristiques.cetteinterpretationest 26.Saufpourlecastresparticulierdesvariablesdeclasse. Danscecontexte,uneextensionrepresentesystematiquementuneentitedierentedecellerepre- 27.Onn'obtientpaspourautantunequivalentduclonagecarl'etatdel'extensionesttoujoursdependantdu. 14

15 d'attributs,cettesolutioninterditegalementcertainesutilisationsdeladelegationtellequecelle representeesparlesobjetspoint2ettortueontlam^emeabscisse.maisenrestreignantlepartage l'objetdetenantl'attribut,dansnotreexempleils'agitdel'objetpoint2.danscecontexte,un auxattributs.l'aectationestalorstoujoursrealisee,quelquesoitlereceveurinitial,auniveaude utiliseedansl'exemple(personne,employe,sportif)28(cf.fig.6). estdependantdesesextensions.uneextensionrepresentelam^emeentitequeson,elleendecrit unepartiespecique.cetteinterpretationpermetainsiderepresenterl'exemple(personne-employesportif),danslequellesextensionsrepresententdespartiesd'untout,cetoutetantlarepresentation d'unepersonne. InterpretationNo2.Deslangagestelsqueselfouobject-lispdeleguentl'accesenecriture tortue,unensembledeproblemesquenousnousproposonsd'abordermaintenant. fait,utilisercettesecondeinterpretationpose,sil'onsouhaiteparexemplerepresenterlepointetla interpretationaconditionderedenirsuruneextensiontouslesattributsdenisparsess.en Onpourraitcroireenpremiereanalysequ'ilestneanmoinspossibledeserameneralapremiere 8objets.Nousutiliseronsleterme(identite)pourdesignerl'entite(oulesentites)dudomainequ'un Lespremiersproblemesqueposelaprogrammationparprototypessontrelatifsal'identitedes Discussiondesproblemesrelatifsal'identitedesobjets. entreobjets,cettebijectionentreentitesdecritesetobjetsn'existeplus.eneet,dansunehierarchie, unm^emeobjetpeutrepresenteralafoisuneentite,plusieursentitesoudespartiesdeplusieursautres attributs;toutemodicationdelavaleurd'undecesattributsestsoussoncontr^ole.avecl'heritage uneseuleentitedudomaine.l'objetyestparailleursuneunited'detenantl'ensembledesvaleursdes objetrepresente.aveclemodeleclasse-instance,unobjetauneidentiteunique,ilrepresenteuneet lestroisobjetspersonne,employeetsportif. lesproprietesdeniesdansl'objetpoint2.dansl'autreexemple,l'entitepersonneestrepresenteepar d'unetortuepuisqu'ildetientsonabscisse.lesrepresentationsdesentitespointettortuepartagent entites.parexemple,l'objetpoint2delagure4representeunpoint,maisegalementunepartie lamodicationaccidentelled'uneentitesuitealamodicationd'uneproprietepartagee. 8.1Problemespotentielsd'integrite Deslorsqu'unobjetdenitdesproprietesrepresentantplusieursentites,seposeleproblemede point2dumessagemoveprovoquelamodicationsd'attributsdepoint2etsubsequemmentdes entitespointettortue,carl'attributxestpartage29.ceresultatpeutneanmoins^etreconsidere commeuneconsequencenaturelledel'utilisationdeladescriptiondierentielle.sileprogrammeur.ilseposeaveclesdeuxinterpretationsdelanotiond'extension.parexemple,l'envoial'objet Lepremierproblemepotentielestlamodicationd'uneextensionparl'intermediairedeson modicationindirected'uneentitemaisellecorrespondal'intentionduprogrammeur. detortuenesouhaitepasquecetobjetdependedepoint2,ilpeututiliserleclonage.ilyabien messagemoveatortuequenousavonsdecritetquimodiel'objetpoint2,cequievidemmentne d'unviaunedesesextensions.ceproblemeneseposequ'aveclasecondeinterpretationde lanotiond'extensionutiliseepourrepresenterdesentitesdierentes.l'exempleenestl'envoidu correspondpasnecessairemental'intentionduprogrammeur.danscetteconguration,leliende Lesecondproblemepotentielestlamodicationaccidentelle(nonprevueparleprogrammeur) Demanderalatortuedesedeplacerentra^neegalementledeplacementdupoint. delegationoctroie,atortueunaccesenlectureetenecritureauxproprietesdeniesdanspoint2. nel'apasete. dansemployeetnonenunemodicationdeadresseauniveaudepersonne. 28.Eneet,l'envoid'unmessageaSportifpourmodiersonadresse,resulteraitalorsenuneredenitiondeadresse 29.Ladistinctionentreobjetetentiteappara^tclairementici,latortueabienetemodieealorsquel'objettortue 15

16 tiquelesreellesunitesd'encapsulationdeslangagesaprototypes([chambersetal.,1991]emploiele lement,ilestimpossibledeplacerunefrontierenetteentredesentitesrepresenteespardesobjets appartenantaunem^emecomposanteconnexed'unehierarchie.cescomposantesdevenantenpra- termed'encapsulationdemodules).uneaectationpeutentra^nerlamodicationd'untresgrand Ilestainsipossibledemodierplusieursentitesenpensantn'enmodierqu'une.Plusgenera- deviennentdefaitdesvariablessemi-globales,modiablesparn'importelequeldesesdescendants. tureauxattributsdenissuroetd'envoyerlemessagescorrespondantae.lesvariablesd'unobjet dansuntelcontextedevientextr^emementsimple.ilsut,pouraccederenlectureetenecritureaux attributsd'unobjeto,d'encreeruneextensione,d'ydenirunemethoderealisantunaccesenecri- nombred'entitessansqu'ilsoitaisedepredirelesquellesoum^emeleurnombre.briserl'encapsulation 8.2Solutionsauxproblemesd'integrite aceprobleme.lasolutionstandardpourleprogrammeurestdecreerdesextensionsenredenissant d'attributs. Responsabiliteduprogrammeur.Deslangagescommeselfneproposentaucunesolution Touteslessolutionsproposeesauproblemeprecedentpassentpardelalimitationdupartage systematiquementtouslesattributsdesessetenn'heritantquelesmethodes.m^emeavec cetteprecaution,ilestimpossible,commenousl'avonsmontre,d'assurerl'encapsulation. valeurs(cf.paragraphe7.3),leslangagescommeyafoolougarnetsolutionnentleproblemeau detrimentdupouvoird'expressiondulangage. Restrictiondupartaged'attributs.Enrestreignantlepartaged'attributsadupartagede (lien).l'existencededeuxtypesdeliensdedelegationcompliquecependantconsiderablement valeursetunesemantiquedevaleurspardefaut,tandisquedupartaged'attributsestassocieal'autre choixentredeuxsortesdeliensdedelegation.al'undecesliens(lienproto)estassociedupartagede solutionmixteaainsieteimplanteedanslelangagenewtonscript[smith,1995]ouleprogrammeurale Distinctionentreliensdedelegation.Orirenstandardlesdeuxpossibilitesesttentant,une quelelienprotosoitprioritaireaulien,ilestdiciledeprevoircequipeutsepasserlorsque lemodeledeprogrammation,lalisibilitedesprogrammesetlarecherchedeselecteurs.eneet,bien liensdesdeuxtypes). leselecteurrechercheestaccessibleensuivantdeuxcheminsdierents(incluanteventuellementdes pasdemethodesparticulieres,appelees(mixin-methods)permettantdespecierdefaconprecise contr^olerlacreationdesesfuturesextensions.ilestimpossibled'etendreunobjet,s'ilnepossede lesdroitsd'accesenlectureetenecritureauxproprietesquiserontoctroyesasesdescendants.cette solutionrendauprogrammeurlecontr^oletotaldesaccesauxproprietesd'un,sonprincipal Contr^oledesextensions.Lelangageagora[Steyaert,1994]permetachaqueobjetde dela(virtualite)desmethodesenc++. inconvenientresidedanslefaitquecelui-cidoitsystematiquementprevoirtouteslespossibilites d'extension,cequiexcluttoutereutilisationnonanticipee;leproblemeestsimilaireaceluiduchoix kevo),quiontencontrepartieunpouvoird'expressionpluslimite. cluentpaslemecanismededelegation.lesproblemesevoquesetantdirectementliesaupartagede proprietesqu'ilinduit,ilvadesoiquecesproblemesneseposentpasdansceslangages(comme Casdeslangagesexcluantlacreationd'extensions.Tousleslangagesaprototypesn'in- 8.3Problemedelagestiondesentitesmorcelees lesobjetspoint2ettortue.leproblemeestqu'iln'existeaucunobjetdulangagerepresentantl'entite representeeparplusieursobjets,nousparlonsalorsd'(entitemorcelee)[donyetal.,1992;malenfant, 1996;BardouetDony,1996];c'estparexemplelecasdel'entitetortue,dontlarepresentationutilise Lepartaged'attributscreeunautreprobleme,connexeauxprecedents.Lorsqu'uneentiteest 16

17 compteur0 val 4 increment (lambda() val := val +1) decrement (lambda() val := val - 1) raz (lambda () val := 0) compteur-trait increment (lambda() val := val +1) decrement (lambda() val := val - 1) raz (lambda () val := 0) compteur0 compteur3 compteur1 compteur3 Fig.9{Solutiondesinstancesprototypiques. Fig.10{Solutiondestraits. val 4 val 0 val 4 val 0 compteur2 compteur1 compteur2 parties.cedoublestatutsemanifestesil'ondemandeal'objettortuedesecloner,demande-t-on tortuedanssaglobalite.onpourraitconsidererquel'objettortuejouecer^olemaisceciluiconfere undoublestatut,celuiderepresentantdetortueetenm^emetempsceluiderepresentantd'unedeses val 6 val 4 val 6 lesecondcas,ilestnecessairederealiserunecopiedetouteslespartiesdelatortue,c'est-a-dire desnomsdierents,entrelesquellesleprogrammeurdoitchoisiretquisontsourcesdeconfusion.le unecopiedesobjetstortueetpoint2,similaireacellerealiseeparlaprimitivec-extentdeact1. unclonagedel'objetouunclonagedel'entite?danslepremiercas,seull'objetdoit^etrecopie.dans problemesereveleencoremieuxsurunexemplepluscomplexe,parexempleceluidelapersonne Ledoublestatutsemanifestedanscetexempleparl'existencededeuxprimitivesdeclonage,ayant Iln'existeplusdanscecasaucunobjetsusceptiblederepresenterl'entite(pierre)danssaglobalite. netrouveaucunesolutionaceproblemedansleslangagesexistants.desetudessontencourspour Sionsouhaitelacloner,aucuneprimitivedulangagen'estcapablederealisercetteoperationpuisque cetteentiten'estpasreiee;untelclonagedoit^etrerealisedefaconadhocparleprogrammeur.on (pierre)(cf.fig.6)representeeparlesobjetspierrepersonne,pierreemployeetpierresportif. aobjets[h.najaetn.mouaddib,1995].danscetteoptique,ladelegationaaussieteutiliseecomme integrerunerepresentationexplicited'objetsmorcelesdansdeslangages,aprototypesouaclasses techniqued'implantationdusystemedepointsdevuederomeensmalltalk[g.vanwormhoudt, [D.BardouetC.Dony,1995;BardouetDony,1996;Bardouetal.,1996]oudanslesbasesdedonnees 1994]. 9representationenintensiondesconcepts.Confrontesalarealisationdeprogrammescomplexes,les Lasecondeseriedeproblemesdelaprogrammationparprototypesestlieealadisparitiondela Discussiondesproblemesliesal'organisationdesprogrammes departageoertesparlesclasses. utilisateursdelangagesaprototypesontviteetelimitesparl'absenced'equivalentsauxpossibilites 9.1Problemedupartageentremembresd'unefamilledeclones relationparlafermeturetransitivedelarelation(est-un-clone-de)quilieconceptuellementunclone conceptuellementaunm^emetypededonneesoual'ensembledesinstancesd'uneclasse. etsonmodele.onpeutassimilerunefamilledeclonesal'ensembledetouslesobjetsappartenant Nousemployonsletermede(familledeclones)pourdesignerl'ensembledesobjetsmisen declones.consideronsparexempleunensembledeclonesdel'objetpointdelagure4,cesobjets Lepremierproblemeestceluidupartagedesmethodescommunesatouslesobjetsd'unefamille 17

18 sonttousindependantsetiln'existeaucunobjetrepresentantlafamille.consideronsmaintenant leproblemesuivant:commentdotertouslesmembresdelafamilled'unenouvellemethode(par exemplemovetoorigin).diversessolutionsonteteproposeespourintroduirecettepossibilitedans leslangagesaprototypes.lespremieressontdelaresponsabiliteduprogrammeuretutilisentles constructionsprimitivesexistantes;ils'agitdesapprochesparinstancesprototypiques,representants moyensoutraits.lessecondesdeplacentleproblemeauniveaudel'implantationetproposentune gestionautomatiquedupartageentreobjetsd'unem^emefamille Gestiondesfamillesdeclonesutilisantdesprototypes Lamethodeditedes(instancesprototypiques),initialementproposeedans[Lieberman, 1986],consisteaeleverundesmembresaustatutderepresentantdelafamille.Danslapratique l'instanceprototypiquedevientledetouslesautresmembres.lagure9montreunexemple d'instanceprototypique(compteur0)pourunefamillede(compteurs).dotertouslesmembresde lafamilled'unenouvelleproprietes'eectuealorssimplementenladenissantsurcetobjet.cette solution,bienqu'utilisabledanslapratique,estpeusatisfaisantecarl'instanceprototypiquepeut^etre condidereetant^otcommeunindividu,tant^otcommel'ensembledesindividusqu'ellerepresente.le statutparticulierderepresentantdelafamillen'estenrienmaterialise;riennedistinguel'instance prototypiquedesautresobjets.pourtantlesautresmembresdelafamilleheriterontdetoutesses evolutions.l'evolutionpersonnelledel'instanceprototypiquepeutdevenircontradictoireavecson statutderepresentantsicetteevolutionfaitqu'iln'estplusrepresentatif.imaginonsparexempleun ministrerepresentantdesescongeneresayantdesdemelesaveclajustice,caracteristiquenouvelleque lesautresnesouhaiteronspasheriter. Pourlaplupartdeslangages,onaabandonnel'ideedenemanipulerquedesobjetsrepresentant desentitesconcretes.lamethodedes(representantsmoyens)reposesurlem^emeprincipeque celledesinstancesprototypiquesmaisunrepresentantmoyen(cf.paragraphe2)estchoisicomme representantdelafamille,ilesteventuellementdoted'attributseteventuellementincomplet. Lamethodedestraits,proposeeparself[Ungaretal.,1991],prochedelaprecedenteconsiste acreerdesobjets,appelestraits,necontenantquelesmethodespartageesparlesobjetsdelafamille (lagure10enmontreunexemple).lamethodologiedestraitssuggeredediviserlarepresentation d'unenouvellesorted'entitesendeuxparties:unobjettraitquicontientlesmethodesfactorisees etunprototypecontenantlesattributsetayantletraitpour.obtenirunnouvelobjetdela familledeclonesconsistealorsaclonerleprototypemaispasletrait. Lesrepresentantsmoyensetlestraitsontlem^emedoublestatutquelesinstancesprototypiques.Letraitestunebibliothequedeproprietes,maisilaaussilestatutd'objetstandard,car riendanslelangageneledistinguedesautresobjets.enparticulier,ilestpossibled'envoyerdes messagesdirectementautraitand'invoquerlesproprietesqu'ildetient,etcelaposeprobleme lorsquecelles-cicontiennentdesreferencesadesvariables.parexemple,sionenvoielemessageincr acompteur-trait,l'accesalavariablevalleverauneexceptionpuisquecompteur-traitnepossede pascettepropriete.untraitdetientdesproprietesquiluisontapplicables(onpeutlesactiverpar envoidemessagepuiqu'illesdetient)maispratiquementinapplicables(ellessontprevuespour^etre appliqueesasesextensions).aveclesrepresentantsmoyens,dansunemoindremesure,ilpeutse poserlem^emeproblemequ'aveclestraits:unrepresentantmoyenpeuttresbien^etreincomplet, c'est-a-diredetenirdesmethodesfaisantreferenceadesvariablesqu'ilsnepossedentpas,oudontla valeurn'estpasdenie(parcequ'iln'yapasdevaleurmoyennepourcettevariable,parexemple). Leclonagemetbienenlumierelesproblemesqueposeledoublestatutdesinstancesprototypiques, destraitsoudesrepresentantsmoyens.ilestimpossibled'ecrireuneprimitivedeclonagecapable declonerautomatiquementetcorrectementunobjetayantpour(directouindirect)untel objet.parexemple,pourclonerlecompteurrepresenteparlesobjetscompteur1etcompteur-trait (Fig.10),ilfautclonercompteur1maispascompteur-trait.Plusgeneralement,leproblemeestde savoir,apartird'unobjetdonne,jusqu'oulacopiedoitremonterand'obtenirunenouvelleentite sansdupliquerlabibliothequedecomportements,cequiestimpossiblepuisqueriennedistingue 18

19 generalementlabibliothequedesautresobjets30. ouabstraits. estl'ensembledesobjetsrepresentantl'entiteetd'autrepart,parmiceux-ci,lesquelssontconcrets d'unefamilledeclonesrepresenteeparuntraitsupposeraitdepouvoirdeterminerd'unepartquel Sil'oncumulelesdierentsproblemes,clonerautomatiquementuneentitemorceleemembre 9.1.2Gestionautomatiquedesfamillesdeclones. familledeclonesautomatiquementgereeparlesysteme.siunemethodeestajouteeouretireeaun objet,celui-cichangedefamille.selfproposeuneconstructionappeleemap,elleaussigereeautomatiquementetinvisibleauprogrammeur.unmapdetientlesmethodesd'unobjetainsiquepour chaqueattribut,sonnometl'indiceauquellavaleurestrangeedansl'objet.lesmapspermettent Unesecondeapprocheestl'automatisation.Danslelangagekevo,toutobjetappartientaune duisentl'espacememoireoccupeparchaqueobjetdanslesquelsseuleslesvaleursdesattributssont d'obteniruneimplantationmemoiredesobjetsidentiqueacelledesinstancesd'uneclasse;ilsre- stockees(fig.11,partiedroite).unnouveaumapestcreeachaquecreationexnihilod'unnouvel objetettouslesmembresd'unefamilledeclonedontlastructuren'apasetemodieepartagentle m^ememap. deconfererundoublestatutadesobjets;desconstructionsspeciquessontutiliseespourassurerla factorisation.toutefois,leprogrammeurn'aaucuncontr^olesurcesconstructions.ilnepeutspecier consideresparlesystemecommeluiappartenant.aveckevo,lorsquel'ondesireajouterunepropriete quelsobjetsdoiventapparteniralam^emefamille,nideterminerquelsobjetssonteectivement Nilesfamillesdeclonesautomatiseesdekevo,nilesmapsdeselfnepresententl'inconvenient atouteunefamilledeclones,ilsutdechoisirunobjetmembredecettefamilleetd'invoquerune 9.1.3Conclusion primitivenepermetd'ajouteruneproprieteatouslesobjetsrattachesaum^ememap. primitived'ajoutcollectif,sanssavoiravecprecisionquelsobjetsvont^etremodies.enself,aucune ontalabaselem^emedefautquiestd'utiliserdesprototypespourrepresenterdesabstractions(les famillesdeclones),doncdereintroduiredesformesd'abstractionsanssupportadequat.lagestion del'absenced'objetsdulangagecapablesderepresentersansambigutesdescollectionsd'objetsou automatiquedesfamillesdeclonesestinsatisfaisante,ellenefaitquemasquerleproblemefondamental Lagestiondesfamillespardesprototypesposedesproblemesconceptuels.Lestroissolutions d'autresabstractions. dansleslangagesaprototypes:ils'agitdupartageentredierentesfamillesdeclones.sionprend l'exempled'unprogrammerepresentantdes(gaulois)etdes(romains),leproblemeestdesavoir 9.2Problemedupartageentrefamillesdeclones surquelobjetdenirlesproprietescommunesacesdeuxfamillesd'entitescommeparexemplela methodevoyager.danslemondedesclasses,cetypedepartageestrealisepardessuper-classes, Unederniereformedepartageessentiellepourl'organisationdesprogrammesad^u^etreintroduite deniesuruneclassepersonnagesuper-classederomainetgaulois.dansleslangagesaprototypes, souventabstraites,communesaplusieursclasses.dansnotreexemplelamethodevoyagerserait quelconqueslimiteparailleursserieusementlespossibilitesderepresentationsd'objetsexceptionnels.yafoolestala dedierencierlesobjets,metenlumiereleproblemedudoublestatut.l'impossibilitedecreerdesextensionsd'objets ailleursilestimpossibledecreerdesextensionsd'objetsnondenispardefmodele.cebooleen,toutenpermettant adaptationsetrestrictions.lesrepresentantsmoyenssontcreesal'aided'uneprimitivespecique(defmodele)etles objetssontdotesd'unattributbooleenindiquants'ilsontounonlestatutdebibliotheque(oud'abstraction).par 30.Protonsdecetteoccasionpourdiscuterd'uncasparticulier.yafoolsolutionnecedernierproblemeparcertaines baseunlangageaprototypeset((ausommet)),autrechose,assezproched'unlangageaclassessansen^etrevraiment un. 19

20 combattre code Gaulois Trait Romain Trait Personnage Trait quereller code Map Gaulois voyager code lieu-actuel lieu arme Gaulois quereller glaive code pilum Romain arme combattre code secret Asterix potion resister code lieu-actuel village map voyager code Romain Map Personnage Map Asterix Map secret lieu-actuel 2 3 arme code resister 4 potion village Asterix glaive Personnage secret envahir code Cesar division lieu-actuel Rome Fig.11{Hierarchiesrealiseesavecdesrepresentantsmoyensd'unepartetdestraitsetdesmaps alaselfd'autrepart. ilaetemisenuvreal'aidedesconstructionsquenousvenonsdedecrire,instancesprototypiques, representantsmoyens,traitsoumaps. Utiliserlasolutiondesinstancesprototypiquesestanouveaupeusatisfaisant.Eneet,iln'existe enprincipeaucunrepresentanttypiquedeconceptsabstraits(lesconceptsrepresentespardesclasses abstraitesdansleslangagesaclasses),onnepeutalorseneleverunaurangd'instanceprototypique. Ilestbiens^urpossibledechoisirunrepresentantd'unsous-conceptcommerepresentantduconcept abstrait,parexemplechoisirungaulois,quel'ondoteraitdelamethodevoyager,commeinstance prototypiquedepersonnage,cequiimpliquededenirtouslesromainscommesesdescendants.ceci impliquenalementunemultiplicationdesmasquagesetdesredenitionsdanslesdescendantset rendleshierarchiesassezobscures. Lapartiegauchedelagure1131montreunehierarchiederepresentantsmoyenspermettantde repondreauproblemepose.danscetexemple,unrepresentantmoyenduconceptpersonnagedetient lesproprieteslieu-actueletvoyager.cetteutilisationdesrepresentantsmoyensneposeapriori pasdeproblemesnouveaux. Lapartiedroitedelagure11montreunequivalentenself,lesrepresentantsmoyenssont remplacespardestraitsnecontenantquedesmethodes.depluschaqueobjetpossedeunmap.le liend'unobjeteststockedanssonmap.lagestionautomatiquedupartageentrefamillespose denouveauxproblemes.danskevo,nonseulementlesystemegereautomatiquementlesfamillesde clones,maisildoitlesorganiserenunehierarchie.lamaintenanceautomatiquedecettehierarchie estbaseesurunensembledepre-etpost-conditionsalamodicationd'unobjet,oudetouteune famille.lorsqu'unobjetestmodie,ildoitchangerdefamille:lesystemedoitdeterminerquelle estcettefamilleeteventuellementlacreer.danslecasd'unemodicationcollective,leprobleme neconsisteplusafairemigrerunseulobjet,maisunefamilleentiere:lesystemeveriedoncsila famillemodieedoitounonfusionneravecl'unedesesvoisinesdanslahierarchie.encequiconcerne lesmapsdeself,lem^emeproblemedemigrationsepose,maisaucunesolutionspeciquen'aete miseenuvrepourleresoudre.plusieursmapsredondantspeuventdonccohabiteralasuitede modicationsequivalentesappliqueesadesobjetsdierents.deuxobjetsayantm^emestructureet m^emecomportementnesontdoncpassystematiquementconsiderescommeappartenantalam^eme 31.Extraitd'unexempleyafoolrealiseparJ.Quinqueton 20

UML. Diagrammes de classes. Delphine Longuet. Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2015-2016

UML. Diagrammes de classes. Delphine Longuet. Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2015-2016 Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2015-2016 UML Diagrammes de classes Delphine Longuet delphine.longuet@lri.fr Objets et classes Conception orientée objet :

Plus en détail

Chapitre 2 : Conception de base de données relationnelle

Chapitre 2 : Conception de base de données relationnelle Chapitre 2 : Conception de base de données relationnelle Le modèle entité-association 1. Les concepts de base 1.1 Introduction Avant que la base de données ne prenne une forme utilisable par le SGBD il

Plus en détail

Rappels sur l objet. Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012

Rappels sur l objet. Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012 Rappels sur l objet Yannick Prié Département Informatique - UFR Sciences et Techniques Université Claude Bernard Lyon 1 2011-2012 Objectifs de ce cours 2 Rappels sur les concepts fondamentaux liés à la

Plus en détail

Notions de programmation orientée objet

Notions de programmation orientée objet 1 Génie Logiciel Notions de programmation orientée objet Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 19/04/2007 2 Les données d'abord (1) Important résultat de l'expérience : Le plus souvent,

Plus en détail

2A-SI 4 - Bases de Données 4.3 - Conception d une BdD relationnelle par le modèle entités-associations

2A-SI 4 - Bases de Données 4.3 - Conception d une BdD relationnelle par le modèle entités-associations 2A-SI 4 - Bases de Données 4.3 - par le modèle entités-associations Stéphane Vialle Stephane.Vialle@supelec.fr http://www.metz.supelec.fr/~vialle Avec l aide du cours de Y. Bourda Modèle entités-associations

Plus en détail

Chapitre 4 LES CLASSES ET LES OBJETS EN PYTHON

Chapitre 4 LES CLASSES ET LES OBJETS EN PYTHON Chapitre 4 LES CLASSES ET LES OBJETS EN PYTHON La création d'une classe en python Class NomClasse(object): def init (self,p1,p2,...,pp): self.att1=f(p1,p2,...pp)... self.attn=f(p1,p2,...pp) def meth1(self,...):......

Plus en détail

Bases de données (organisation générale)

Bases de données (organisation générale) Bases de données (organisation générale) Répétition 1 Le modèle entité-relation Samuel Hiard S.Hiard@ulg.ac.be I/112 (B28) sur rendez-vous Page du cours : http://www.montefiore.ulg.ac.be/~pw/cours/bd.html

Plus en détail

Graphes et planification

Graphes et planification Graphes et planification Un problème de planification étant donné un travail à effectuer nécessitant un (grand) nombre de tâches coordonnées entre elles Trouver le temps minimum pour terminer le travail

Plus en détail

FICHE DE RENSEIGNEMENT AEP

FICHE DE RENSEIGNEMENT AEP Adresse : n 5 rue du Pâtis existant Longueur de canalisation à remplacer en partie non bâtie : 7m Longueur de canalisation à remplacer dans l'habitation : 1m Compteur à l'intérieur de l'habitation (dans

Plus en détail

Programmation Orientée Objet. Ecrire beaucoup de lignes de code, même très propres, ne suffit pas

Programmation Orientée Objet. Ecrire beaucoup de lignes de code, même très propres, ne suffit pas 2 Modélisation Construire un bon logiciel : Répondre aux objectifs fixés (satisfaire le client) Avoir une base architecturale solide qui permette l évolution Mettre en place un processus de développement

Plus en détail

DIRECTION DE L ÉVALUATION ET DE LA PROSPECTIVE SOUS - DIRECTION DE L ÉVALUATION. ÉVALUATION À L ENTRÉE EN 6 e MATHÉMATIQUES CAHIER DE L ÉLÈVE

DIRECTION DE L ÉVALUATION ET DE LA PROSPECTIVE SOUS - DIRECTION DE L ÉVALUATION. ÉVALUATION À L ENTRÉE EN 6 e MATHÉMATIQUES CAHIER DE L ÉLÈVE DIRECTION DE L ÉVALUATION ET DE LA PROSPECTIVE SOUS - DIRECTION DE L ÉVALUATION F ÉVALUATION À L ENTRÉE EN 6 e MATHÉMATIQUES CAHIER DE L ÉLÈVE NOM DE L ÉLÈVE... PRÉNOM DE L ÉLÈVE... N DE LA CLASSE... 2004

Plus en détail

Cours de base d Ingéniérie des applications objet. Introduction

Cours de base d Ingéniérie des applications objet. Introduction 1 IMPORTANCE DES OBJETS DANS L INFORMATIQUE LOGICIELLE1 Cours de base d Ingéniérie des applications objet. Introduction Support de Cours Christophe Dony Université Montpellier-II Contenu du cours - concepts

Plus en détail

AU RYTHME DES SAISONS

AU RYTHME DES SAISONS ACTIVITÉ DE SUIVI PRIMAIRE 3 EME CYCLE LA FORÊT LAURENTIENNE AU RYTHME DES SAISONS Bio-Quiz... La forêt laurentienne regorge de vie, plusieurs animaux y trouvent abri et nourriture. Malheureusement, cet

Plus en détail

Ministère de la culture et de la communication EXAMEN PROFESSIONNEL POUR L'ACCÈS AU GRADE DE SECRETAIRE ADMINISTRATIF(VE) DE CLASSE SUPERIEURE

Ministère de la culture et de la communication EXAMEN PROFESSIONNEL POUR L'ACCÈS AU GRADE DE SECRETAIRE ADMINISTRATIF(VE) DE CLASSE SUPERIEURE Ministère de la culture et de la communication EXAMEN PROFESSIONNEL POUR L'ACCÈS AU GRADE DE SECRETAIRE ADMINISTRATIF(VE) DE CLASSE SUPERIEURE SESSION 2013 DOSSIER DE DESCRIPTION DU PARCOURS PROFESSIONNEL

Plus en détail

Conception de bases de données multimédias

Conception de bases de données multimédias Conception de bases de données multimédias Plan du cours Difficultés associées à la représentation d'objets MM (6.1) Modélisation conceptuelle (UML-ERD) (6.2) Transformation du modèle conceptuel en un

Plus en détail

Bases de données et sites WEB Cours 2 : SQL3 Modèle

Bases de données et sites WEB Cours 2 : SQL3 Modèle Bases de données et sites WEB Cours 2 : SQL3 Modèle 1 Plan Insuffisances du modèle relationnel Concepts objet Modèle Objet-relationnel et SQL3 2 Insuffisances du modèle relationnel Opérations séparées

Plus en détail

Java Licence professionnelle CISII, 2009-2010

Java Licence professionnelle CISII, 2009-2010 Java Licence professionnelle CISII, 2009-2010 Cours 5 : l héritage Cours inspiré des cours de Richard Grin, Antoine Tabbone et Hazel Everett Héritage Introduction - Pour raccourcir les temps d écriture

Plus en détail

RENCONTRES PEUGEOT SPORT 2015 Ravitaillement carburant Annexe 1

RENCONTRES PEUGEOT SPORT 2015 Ravitaillement carburant Annexe 1 RENCONTRES PEUGEOT SPORT 2015 Ravitaillement carburant Annexe 1 Les mises à jour sont signalées sur fond gris. PRESENTATION Mise en application de la réglementation FFSA 7.5 RAVITAILLEMENTS du règlement

Plus en détail

Elections au conseil de gouvernance de Polytech Paris-Sud 23 septembre 2014. Déclaration individuelle de candidature Collège des enseignants A

Elections au conseil de gouvernance de Polytech Paris-Sud 23 septembre 2014. Déclaration individuelle de candidature Collège des enseignants A Déclaration individuelle de candidature Collège des enseignants A Je soussigné(e)... Adresse professionnelle :...... Déclare être candidat(e) au conseil de gouvernance de POLYTECH PARIS SUD dans le collège

Plus en détail

Cirque et autres «Ciraqueries» :

Cirque et autres «Ciraqueries» : Des classes vertes? Mieux! des classes multicolores! Programme écoles maternelle et primaire Cirque et autres «Ciraqueries» : Haut en couleurs, le thème du cirque est cher à notre équipe «classes vertes

Plus en détail

Sage 100 CRM - Guide Comparatif Fonctionnel de Sage CRM. Mise à jour : 2015 version 8

Sage 100 CRM - Guide Comparatif Fonctionnel de Sage CRM. Mise à jour : 2015 version 8 Sage 100 CRM - Guide Comparatif Fonctionnel de Sage CRM Mise à jour : 2015 version 8 Sommaire Préambule 3 Introduction... 3 de base 4 Standard... 4 Gestion de la force de vente... 5 Service marketing et

Plus en détail

Résumé Introduction Programmation Java

Résumé Introduction Programmation Java Résumé Introduction Programmation Java Concepts Un programme : séquence, test conditionnel, boucles. Objets : Les objets Java modélisent les objets d un problème donné Classe : Les objets sont crées à

Plus en détail

PARADIGME ORIENTÉ OBJET - PART 2

PARADIGME ORIENTÉ OBJET - PART 2 PARADIGME ORIENTÉ OBJET - PART 2 A programming paradigm that uses objects to design systems. Sébastien Adam Les concepts avancés de la programmation orientée-objet 2 Plan Héritage en Java Modificateur

Plus en détail

Algorithmique et programmation avec Java (NFA002)

Algorithmique et programmation avec Java (NFA002) Algorithmique et programmation avec Java (NFA002) Deuxième session 13 septembre 2012 Aucun document n est autorisé. Le barème est donné à titre indicatif. Exercice 1 : listes (4 points) Etudiez le programme

Plus en détail

Programmation orientée objets

Programmation orientée objets POO : mais pourquoi? La Programmation Orientée Objets (POO) a pour but final de faciliter le débogage, la maintenance et la mise à jour d'applications complexes. C++, Java et Scala sont des exemples de

Plus en détail

IFT3030 Base de données. Chapitre 7 Conception de bases de données. Plan du cours

IFT3030 Base de données. Chapitre 7 Conception de bases de données. Plan du cours IFT3030 Base de données Chapitre 7 Conception de bases de données Plan du cours Introduction Architecture Modèles de données Modèle relationnel Algèbre relationnelle SQL Conception Fonctions avancées avancés

Plus en détail

Programmation Java. Redéfinition de méthode (masquage)

Programmation Java. Redéfinition de méthode (masquage) Programmation Java Programmation objet avec Java Concepts plus avancés Christelle Urtado & Sylvain Vauttier Janvier 2013 Redéfinition de méthode (masquage) Une sous-classe peut redéfinir le code de méthodes

Plus en détail

II. Modèle conceptuel le modèle entité-association

II. Modèle conceptuel le modèle entité-association II. Modèle conceptuel le modèle entité-association Personne Voiture Schéma conceptuel Monde réel υ Concepteur υ Personne conduit Voiture ϖ ϖ Schéma logique utilisateurs ω LMD BD Personne Dupont Durant

Plus en détail

Guide d utilisation de KIP Printer Status Guide d installation et d utilisation de KIP Printer Status

Guide d utilisation de KIP Printer Status Guide d installation et d utilisation de KIP Printer Status Guide d installation et d utilisation de KIP Printer Status - 1 - Table des matières 1 Introduction... 3 2 Installation et configuration... 4 3 Fonctionnalité de KIP Printer Status... 6 4 Utilisation de

Plus en détail

Bases de données et langage SQL

Bases de données et langage SQL Bases de données et langage SQL Introduction, modèle entité / association Philippe.Dosch@loria.fr IUT SRC DE VERDUN 10/09/2003 Exemples introductifs Gestion de CD Artiste Album Les têtes raides Les oiseaux

Plus en détail

UML (Diagramme de classes) Unified Modeling Language

UML (Diagramme de classes) Unified Modeling Language UML (Diagramme de classes) Unified Modeling Language Sommaire Introduction Objectifs Diagramme de classes Classe (Nom, attribut, opération) Visibilité et portée des constituants d une classe Association

Plus en détail

Règlement Niveau primaire. Guide pour participer au concours Montrez-nous votre vision du Saint-Laurent de la Fondation Monique-Fitz-Back

Règlement Niveau primaire. Guide pour participer au concours Montrez-nous votre vision du Saint-Laurent de la Fondation Monique-Fitz-Back Règlement Niveau primaire Guide pour participer au concours Montrez-nous votre vision du Saint-Laurent de la Fondation Monique-Fitz-Back 2 Domaine d apprentissage : arts plastiques Compétence 2 : réaliser

Plus en détail

Conception et Programmation par Objets GLIN404. Langages et paradigmes de programmation

Conception et Programmation par Objets GLIN404. Langages et paradigmes de programmation Conception et Programmation par Objets GLIN404 Marianne Huchard, Clémentine Nebut LIRMM / Université de Montpellier 2 2013 Langages et paradigmes de programmation Le raisonnement classicatoire paradigme

Plus en détail

Plan. Introduction aux Bases de Données. Théorie des BD relationnelles : plan. Représentation tabulaire d une base de données

Plan. Introduction aux Bases de Données. Théorie des BD relationnelles : plan. Représentation tabulaire d une base de données Plan Introduction aux Bases de Données L3 Céline Rouveirol 2010-2011 Contraintes d intégrité Introduction aux Bases de Données 1 / 27 Théorie des BD relationnelles : plan Introduction aux Bases de Données

Plus en détail

Titre : Chambre au bord de la mer de E.HOPPER

Titre : Chambre au bord de la mer de E.HOPPER Titre : Chambre au bord de la mer de E.HOPPER Classe de cycle 3. Octobre 2013 PREALABLE Posture de l enseignant : accueillir toutes les propositions des enfants Ne pas présenter le titre et le nom de l

Plus en détail

Centre de loisirs sans hébergement «Les Drôles»

Centre de loisirs sans hébergement «Les Drôles» Communauté de Communes du Terroir de la Truffe Centre de loisirs sans hébergement «Les Drôles» PROJET PEDAGOGIQUE 2010 2011 - Page 1 - Sommaire 1 Présentation du centre 2 Les moyens 3 Les activités 4 -

Plus en détail

NORMALISATION Code des couleurs pour boutons poussoirs

NORMALISATION Code des couleurs pour boutons poussoirs 1/ Rôle NORMALISATION Code des couleurs pour boutons poussoirs Les couleurs normalisées (NF EN 60204-1) ont pour rôle de définir la fonction attribuée aux différents boutons poussoirs utilisés sur un pupitre

Plus en détail

INTRODUCTION À POO. Baccalauréat S Informatique et Sciences du Numérique. 4.3 : Langages de programmation : POO

INTRODUCTION À POO. Baccalauréat S Informatique et Sciences du Numérique. 4.3 : Langages de programmation : POO INTRODUCTION À POO Baccalauréat S Informatique et Sciences du Numérique 4.3 : Langages de programmation : POO Référentiel de formation Objectifs A la fin de la séquence, l'élève doit être capable o de

Plus en détail

Cours: SYSTEMES MULTIMEDIA Master RSD, 2014/2015

Cours: SYSTEMES MULTIMEDIA Master RSD, 2014/2015 Cours: SYSTEMES MULTIMEDIA Master RSD, 2014/2015 Prof. Slimane Larabi Chapitre 2. Notions sur l image et la vidéo 2.1 Notions sur l'image 2.2 Représentation d une image 2.3 OPERATIONS SUR LES IMAGES 2.4

Plus en détail

Documentaire animalier

Documentaire animalier Documentaire animalier Caractéristiques générales : 1. Les animaux : leurs noms, leurs cris, leurs habitats. 2. L environnement naturel, les paysages, le climat. 3. La bande sonore et le commentaire en

Plus en détail

Utiliser un tableau à double entrée «Question de caractère»

Utiliser un tableau à double entrée «Question de caractère» «Question de caractère» 16-31 Niveau 3 Entraînement 1 Objectifs Applications (eemples) Matériel Consignes Remarques Transferts possibles (eemples) Individualisation Oui. S'entraîner à se repérer et à prendre

Plus en détail

Conception de Bases de Données Avec UML

Conception de Bases de Données Avec UML 1 1 Bases de Données Avancées Module B IUT Lumière, License CE-STAT 2006-2007 Pierre Parrend Plan du Cours Table of Contents Conception de Bases de Données Avec UML UML et la conception de Bases de Données...2

Plus en détail

Génie logiciel avancé

Génie logiciel avancé Université Paris-Sud L3 MIAGE apprentissage Année 2014-2015 Génie logiciel avancé Conception Delphine Longuet delphine.longuet@lri.fr Documentation du processus de GL Cahier des charges Analyse des besoins

Plus en détail

MODULE INF112 TD 2 2012 2013 2012-2013 INF112 - TD2 1

MODULE INF112 TD 2 2012 2013 2012-2013 INF112 - TD2 1 MODULE INF112 TD 2 2012 2013 2012-2013 INF112 - TD2 1 Plan 1. Algorithme vs Programme 2. Introduction à l algorithmique 3. Exercices 2012-2013 INF112 - TD2 2 1. Algorithme vs programme Motivations (rappel)

Plus en détail

Règlement du concours Tout Public

Règlement du concours Tout Public CONCOURS CREATION DE CARTES POSTALES "FAITES RIMER VOS VACANCES" Règlement du concours Tout Public Article 1 : Organisation La Médiathèque "Il était une fois..." et l'office Socio- Culturel de la Communauté

Plus en détail

Héritage presque multiple en Java (1/2)

Héritage presque multiple en Java (1/2) Héritage presque multiple en Java (1/2) Utiliser deux classes ou plus dans la définition d'une nouvelle classe peut se faire par composition. class Etudiant{ int numero; Diplome d; float passeexamen(examen

Plus en détail

DOSSIER DE CANDIDATURE PLAN SPORT EMPLOI DU MINISTERE DE LA SANTE, DE LA JEUNESSE ET DES SPORTS PARTIE N 1 : RENSEIGNEMENTS GENERAUX EMPLOYEUR

DOSSIER DE CANDIDATURE PLAN SPORT EMPLOI DU MINISTERE DE LA SANTE, DE LA JEUNESSE ET DES SPORTS PARTIE N 1 : RENSEIGNEMENTS GENERAUX EMPLOYEUR DOSSIER DE CANDIDATURE PLAN SPORT EMPLOI DU MINISTERE DE LA SANTE, DE LA JEUNESSE ET DES SPORTS PARTIE N 1 : RENSEIGNEMENTS GENERAUX DATE : EMPLOYEUR Nom de l association :. Adresse du siège social : Tél

Plus en détail

Objectifs. Concepts. Etude de cas. EPFL 2015 Jean-Cédric Chappelier & Jamila Sam. Programmation II Polymorphisme 2 1 / 17. Objectifs.

Objectifs. Concepts. Etude de cas. EPFL 2015 Jean-Cédric Chappelier & Jamila Sam. Programmation II Polymorphisme 2 1 / 17. Objectifs. de la leçon d aujourd hui Programmation II : Cours d introduction à la programmation orientée objet Polymorphisme, 2 re partie fondamentaux Étude de cas Laboratoire d Intelligence Artificielle Faculté

Plus en détail

CONCOURS CANDIDATURE EXTERNE : ASPIRANT-COMMISSAIRE DE POLICE (CADRE DES OFFICIERS) SUR BASE D UN DIPLÔME DE NIVEAU A Session 2011-2013

CONCOURS CANDIDATURE EXTERNE : ASPIRANT-COMMISSAIRE DE POLICE (CADRE DES OFFICIERS) SUR BASE D UN DIPLÔME DE NIVEAU A Session 2011-2013 La Direction du recrutement et de la sélection (DSR) organise un concours en vue de recruter des officiers pour la police intégrée (polices locales et fédérale). Il concerne le recrutement d aspirant-officiers

Plus en détail

Interface Homme-Machine Travaux pratiques Séance 1 : Introduction Java / Swing / JBuilder

Interface Homme-Machine Travaux pratiques Séance 1 : Introduction Java / Swing / JBuilder Interface Homme-Machine Travaux pratiques Séance 1 : Introduction Java / Swing / JBuilder Pluquet Frédéric 15 octobre 2004 1 Introduction 1.1 L assistant Pluquet Frédéric, Téléphone : 02/650.56.01, Email

Plus en détail

DOSSIER DE CANDIDATURE

DOSSIER DE CANDIDATURE Boulevard de Villefontaine - BP 29 38091 VILLEFONTAINE CEDEX Tél. : 04.74.96.44.55 Fax : 04.74.96.35.88 Adresse Mail : ce.0382440w@ac-grenoble.fr Site internet : http://www.ac-grenoble.fr/vinci DOSSIER

Plus en détail

Conception de bases de données relationnelles

Conception de bases de données relationnelles Modélisation d une BD Conception de bases de données relationnelles Niveau conceptuel : modélisation de BD relationnelles Marie Szafranski Étape fondatrice du processus de conception ; c est une abstraction

Plus en détail

Le langage UML : Les diagrammes de séquence. Lydie du Bousquet Lydie.du-bousquet@imag.fr

Le langage UML : Les diagrammes de séquence. Lydie du Bousquet Lydie.du-bousquet@imag.fr Le langage UML : Les diagrammes de séquence Lydie du Bousquet Lydie.du-bousquet@imag.fr 1 Modélisation des interactions Les objets d un système ont un comportement Ils interagissent entre eux Dynamique

Plus en détail

Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr. Bases de Données Avancées - UML et Bases de Données

Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr. Bases de Données Avancées - UML et Bases de Données Pierre Parrend IUT Lumière Lyon II, 2005-2006 pierre.parrend@univ-lyon2.fr Bases de Données Avancées - UML et Bases de Données Sommaire I. UML A. Ce qu'est UML B. Diagrammes de Cas d'utilisation C. Diagrammes

Plus en détail

Génération de code : langages objets Gestion mémoire 2 novembre 2011

Génération de code : langages objets Gestion mémoire 2 novembre 2011 Génération de code : langages objets Gestion mémoire 2 novembre 2011 1 Compilation d un langage objet Représentation des classes et des objets Héritage multiple Appartenance à une classe 2 Environnement

Plus en détail

3COMMENT ORGANISER LA SÉANCE 3INTERGÉNÉRATIONNELLE EN CLASSE

3COMMENT ORGANISER LA SÉANCE 3INTERGÉNÉRATIONNELLE EN CLASSE 3 On peut récréer des liens intergénérationnels réels en construisant des activités où les enfants et les personnes âgées dans un même espace vont apprendre et échanger des expériences. Une heure de visite

Plus en détail

l. n'^.nl propriétai r) Fornrulaire de denrande signé 7 Exemple cl'une tlernande complète: Demande de subvention pour I'assainissement d'un bât ment

l. n'^.nl propriétai r) Fornrulaire de denrande signé 7 Exemple cl'une tlernande complète: Demande de subvention pour I'assainissement d'un bât ment Exemple cl'une tlernande complète: r) Fornrulaire de denrande signé 7 * * * Numéro de demande: Vous recevez le numéro de demande avec la décision d'octroi d'une subvention Propriétaire (requéranve) Jean

Plus en détail

France-Paris: Production de films et de vidéos à usage pédagogique 2014/S 248-439765. Avis d attribution de marché. Services

France-Paris: Production de films et de vidéos à usage pédagogique 2014/S 248-439765. Avis d attribution de marché. Services 1/6 Cet avis sur le site TED: http://ted.europa.eu/udl?uri=ted:notice:439765-2014:text:fr:html France-Paris: Production de films et de vidéos à usage pédagogique 2014/S 248-439765 Avis d attribution de

Plus en détail

MOBILITÉ POUR TOUS. Sommaire NIVEAU PETITS. L évolution de l automobile. La voiture recyclée. Se déplacer autour de l école.

MOBILITÉ POUR TOUS. Sommaire NIVEAU PETITS. L évolution de l automobile. La voiture recyclée. Se déplacer autour de l école. MOBILITÉ POUR TOUS NIVEAU PETITS NOM : PRÉNOM : CLASSE : Sommaire 1. 2. 3. 4. 5. L évolution de l automobile La voiture recyclée Se déplacer autour de l école Le pédibus L éco-voiturage Bonjour et bienvenue

Plus en détail

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers) Découverte du monde : traiter deux informations Compétence : Savoir utiliser un tableau à double entrée. Matériel : - un plateau de jeu quadrillé : cinq lignes et cinq colonnes, - quatre pièces "couleur",

Plus en détail

Lulu et la cigogne étourdie

Lulu et la cigogne étourdie Auteur : Daniel Picouly Illustrateur : Frédéric Pillot Édition : Magnard Jeunesse Première parution : 007 (cet album existe en version cartonnée et en version souple) Niveau Cycle Genre Album Mots clés

Plus en détail

I Rappels sur la programmation objet

I Rappels sur la programmation objet PARTIE I Rappels sur la programmation objet Christophe Duhamel Bruno Bachelet Luc Touraille Méthodes et outils de développement logiciel - ISIMA / ZZ3-2011-2012 5 Les objets Définitions Objet Classe Formalisme

Plus en détail

CHAPITRE 2. Modèle Entités-Relations (E-R)

CHAPITRE 2. Modèle Entités-Relations (E-R) CHAPITRE 2 Modèle Entités-Relations (E-R) Contenu du chapitre 2 Après la collecte et l analyse des besoins de usagers, il faut créer le schéma conceptuel de haut niveau Nous utiliserons le modèle E-R Entités,

Plus en détail

Cours 10136A: Configuration, gestion et maintenance des serveurs Windows Server 2008

Cours 10136A: Configuration, gestion et maintenance des serveurs Windows Server 2008 Cours 10136A: Configuration, gestion et maintenance des serveurs Windows Server 2008 Ce cours dirigé d une durée de 30 heures reprend le contenu des formations Windows Server 2008 à destination des spécialistes

Plus en détail

Réseau Conseil Académique

Réseau Conseil Académique Réseau Conseil Académique Juin 2004 PROTECTION DE LA PROPRIETE INTELLECTUELLE ET DU DROIT A L IMAGE 9. LES ANNEXES Annexe 1. Annexe 2. Annexe 3. Annexe 4. Contrat de cession de droits d auteur - Exemple

Plus en détail

PRINCIPE DE FONCTIONNEMENT

PRINCIPE DE FONCTIONNEMENT 1. Définition. PRINCIPE DE FONCTIONNEMENT Le principe de fonctionnement d un objet technique correspond à la manière ou aux moyens qu il utilise pour arriver à assurer sa fonction d usage. La description

Plus en détail

1. Objectifs de la Modélisation. Dériver le schéma de la BD. Élaborer un modèle conceptuel. Modélisation E/R des Données

1. Objectifs de la Modélisation. Dériver le schéma de la BD. Élaborer un modèle conceptuel. Modélisation E/R des Données . Objectifs et principes Modélisation E/R des Données 2. Le modèle Entité-Association (E/R) 3. Passage au relationnel 4. Conclusion. Objectifs de la Modélisation Permettre une meilleure compréhension Le

Plus en détail

Diagramme de classes

Diagramme de classes Diagramme de classes Un diagramme de classes décrit les classes et leurs relations (associations, généralisation/spécialisation, ). classe association méthodes attributs héritage Diagramme de classes :

Plus en détail

AVIS D APPEL PUBLIC A LA CONCURRENCE

AVIS D APPEL PUBLIC A LA CONCURRENCE AVIS D APPEL PUBLIC A LA CONCURRENCE Identification de l'organisme qui passe le marché : Commune d'orsay Pouvoir adjudicateur : M. le Maire d'orsay Adresse : 2 place du général Leclerc - 91 400 ORSAY Objet

Plus en détail

CALENDRIER de ramassage des déchets

CALENDRIER de ramassage des déchets SECTEUR 1 Vous résidez dans le secteur 1 NE PAS DÉPOSER LES SACS OU LES BACS EN DEHORS DES JOURS DE COLLECTE. DÉPOSER LES SACS OU BACS A PARTIR DE 19H30, LA VEILLE DES JOURS DE COLLECTE. VEILLER A RESPECTER

Plus en détail

Introduction à la programmation avec Java

Introduction à la programmation avec Java Introduction à la programmation avec Java UFR Sciences de Nice Licence Math-Info 2006-2007 Module L1I1 Frédéric MALLET Jean-Paul ROY Ressources sur le langage Java Conception objet en Java avec BlueJ :

Plus en détail

Chapitre 1 UN MODELE CONCEPTUEL: LE MODELE ENTITE- ASSOCIATION

Chapitre 1 UN MODELE CONCEPTUEL: LE MODELE ENTITE- ASSOCIATION Chapitre 1 UN MODELE CONCEPTUEL: LE MODELE ENTITE- ASSOCIATION 1. Concepts de base et diagrammes EA Le modèle entité-association (EA, appelé aussi entité-relation ou ER) est un modèle de données de type

Plus en détail

Sécurité et Firewall

Sécurité et Firewall TP de Réseaux IP pour DESS Sécurité et Firewall Auteurs: Congduc Pham (Université Lyon 1), Mathieu Goutelle (ENS Lyon), Faycal Bouhafs (INRIA) 1 Introduction: les architectures de sécurité, firewall Cette

Plus en détail

FORMATIONS IGN SUR LA DIRECTIVE INSPIRE

FORMATIONS IGN SUR LA DIRECTIVE INSPIRE Natural full scale Information A new world of Information JOURNÉE INSPIRE ATELIER 3 Pierre VERGEZ inspire@ign.fr http://inspire.ign.fr/ FORMATIONS IGN SUR LA DIRECTIVE INSPIRE IGN /DPC/ MISSION APPUI CNIG

Plus en détail

Tutoriel d utilisation du Géoportail de la Wallonie Exemple : Cartographie Inondations

Tutoriel d utilisation du Géoportail de la Wallonie Exemple : Cartographie Inondations Tutoriel d utilisation du Géoportail de la Wallonie Exemple : Cartographie Inondations Ce tutoriel constitue un mode opératoire succinct permettant de décrire comment accéder aux informations détenues

Plus en détail

Planning d activités des Temps d Activités Périscolaire Maternels Du 11 mai au 15 mai 2015. Classe des MOYENS. Virginie &Manon

Planning d activités des Temps d Activités Périscolaire Maternels Du 11 mai au 15 mai 2015. Classe des MOYENS. Virginie &Manon Du 11 mai au 15 mai 2015 PATE A MODELER DESSINER C EST GAGNE DESSINONS UN ANIMAL MERES FERIE FERIE FERIE FERIE EXPRESSION CORPORELLE PUZZLES COLORIAGE Du 18 mai au 22 mai 2015 EXTERIEURS MERES JEUX SPORTIFS

Plus en détail

Reconstituer «Le stylo à bille»

Reconstituer «Le stylo à bille» «Le stylo à bille» 18-21 Niveau 2 Entraînement 1 Objectifs - S entraîner à observer, comparer. - S entraîner à reconstituer, associer. - S entraîner à manipuler visuellement des objets dessinés. - S entraîner

Plus en détail

Chapitre I. Introduction à la programmation

Chapitre I. Introduction à la programmation Chapitre I Introduction à la programmation Objectif du cours Comprendre ce qu est l algorithmique. Fournir des éléments de bases intervenants en programmation quel que soit le langage employé Variables

Plus en détail

Bases de données Cours 2 : Modélisation d une base de données

Bases de données Cours 2 : Modélisation d une base de données Cours 2 : Modélisation d une base de données POLYTECH Université d Aix-Marseille odile.papini@univ-amu.fr http://odile.papini.perso.esil.univmed.fr/sources/bd.html Plan du cours 1 Modélisation d une base

Plus en détail

Annexe du cours Conception des sites web marchands et mobiles

Annexe du cours Conception des sites web marchands et mobiles Conception des sites web marchands et mobiles Nassim BAHRI {contact@nassimbahri.ovh} 1 Novembre 2015 1 Diagramme de séquence système Les cas d'utilisation décrivent les interactions des acteurs avec le

Plus en détail

Manuel UTILISATEUR site web Inscription.

Manuel UTILISATEUR site web Inscription. Manuel UTILISATEUR site web Inscription. 1/97 Fédération Française de Karaté Porte d'orléans 39 rue Barbès 92120 Montrouge Septime HOUNKPATIN Carla PIEDADE Téléphone : 01 41 17 44 40 hseptime@ffkarate.fr

Plus en détail

Bases de données. Chapitre 1. Introduction

Bases de données. Chapitre 1. Introduction Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,

Plus en détail

Modèle conceptuel : diagramme entité-association

Modèle conceptuel : diagramme entité-association Modèle conceptuel : diagramme entité-association Raison d'être de ce cours «La conception et l'utilisation de bases de données relationnelles sur micro-ordinateurs n'est pas un domaine réservé aux informaticiens.»

Plus en détail

Architecture des applications

Architecture des applications Architecture des applications Table des matières 1 Introduction 1 2 Les classes valeurs 2 2.1 Les Javaeans............................................. 2 2.2 Les différents types de Javaeans...................................

Plus en détail

L' adjectif démonstratif 1 CE - CET - CETTE CES

L' adjectif démonstratif 1 CE - CET - CETTE CES Complétez chacun des espaces avec l'adjectif démonstratif qui convient et cliquez sur "Vérifier" pour savoir si vous avez trouvé la bonne réponse. Cliquez sur "Indice" si vous avez de la difficulté. L'

Plus en détail

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Cours de Programmation Impérative: Zones de mémoires et pointeurs Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien

Plus en détail

CARREFOUR DES JEUNES SAPEURS-POMPIERS Jeudi 24 septembre 2015

CARREFOUR DES JEUNES SAPEURS-POMPIERS Jeudi 24 septembre 2015 122 e congrès national des sapeurs-pompiers de France 23 26 septembre 2015 Agen CARREFOUR DES JEUNES SAPEURS-POMPIERS Jeudi 24 septembre 2015 Crédit photo : UDSP74 Accueil Capitaine Céline GUILBERT Présidente

Plus en détail

Conception de bases de données relationnelles

Conception de bases de données relationnelles Conception de bases de données relationnelles Niveau conceptuel : modélisation de BD relationnelles Marie Szafranski 2015-2016 ensiie 1 2015-2016 ensiie 1 Modélisation d une BD Modélisation d une BD Étape

Plus en détail

Parcours Régional de Performance Sportive. Ligue d Athlétisme de la Réunion

Parcours Régional de Performance Sportive. Ligue d Athlétisme de la Réunion Parcours Régional de Performance Sportive Ligue d Athlétisme de la Réunion Pré filière Minimes Objectif : Favoriser l entrée des meilleurs Minimes dans le collectif «Espoirs 2016». Dans le cadre du PRPS,

Plus en détail

Le Syndicat Mixte des Transports Collectifs de l Oise (SMTCO) et sa réalisation majeure: le SISMO

Le Syndicat Mixte des Transports Collectifs de l Oise (SMTCO) et sa réalisation majeure: le SISMO Le Syndicat Mixte des Transports Collectifs de l Oise (SMTCO) et sa réalisation majeure: le SISMO Système intégré des services à la mobilité dans l Oise CERTU «Les Rencontres du Covoiturage» 11 juin 2013-

Plus en détail

Grandes lignes du cours. Cours JAVA : Le polymorphisme en Java. Outline. Outline. Rappel principes de la POO. Un nouveau principe POO : Héritage

Grandes lignes du cours. Cours JAVA : Le polymorphisme en Java. Outline. Outline. Rappel principes de la POO. Un nouveau principe POO : Héritage Grandes lignes du cours Cours JAVA : Le polymorphisme en Java. Version 4.01 Julien Sopena 1 1 julien.sopena@lip6.fr Équipe REGAL - INRIA Rocquencourt LIP6 - Université Pierre et Marie Curie Licence professionnelle

Plus en détail

UN PROJET MULTIMÉDIA avec les classes 702A et 712B et le logiciel MISTRALMOVIE, au Cycle d Orientation des Grandes-Communes

UN PROJET MULTIMÉDIA avec les classes 702A et 712B et le logiciel MISTRALMOVIE, au Cycle d Orientation des Grandes-Communes UN PROJET MULTIMÉDIA avec les classes 702A et 712B et le logiciel MISTRALMOVIE, au Cycle d Orientation des Grandes-Communes Buts Mise en place d une période de révision d allemand en fin de 7e année sous

Plus en détail

Design patterns par la pratique

Design patterns par la pratique Alan SHALLOWAY James TROTT Design patterns par la pratique Groupe Eyrolles, 2002 ISBN : 2-212-11139 Table des matières Préface.................................................... XV SECTION I Introduction

Plus en détail

ARRÊTÉ N 2007.287. Le Président du Centre de Gestion de la Fonction Publique Territoriale du Rhône,

ARRÊTÉ N 2007.287. Le Président du Centre de Gestion de la Fonction Publique Territoriale du Rhône, ARRÊTÉ N 2007.287 Objet : Ouverture d un examen professionnel d accès par voie d avancement au grade d adjoint technique territorial de 1 ère classe dans la spécialité artisanat d art. Le Président du

Plus en détail

Programmation MacOSX / ios

Programmation MacOSX / ios Programmation MacOSX / ios Master Ingénierie Informatique 2011-2012 Jean-Baptiste.Yunès@liafa.jussieu.fr deux extensions objets de C : C++ (Stroustrup) Objective-C (Cox & Love) ajout de constructions à

Plus en détail

Programmation orientée-objets

Programmation orientée-objets Rappel Programmation orientée-objets (cours 2) On a un ensemble d'objets ayant des caractéristiques communes par ex. les notions de largeur et longueur sont des caractéristiques générales des rectangles

Plus en détail

«Regards solidaires dans l Oise» Concours photo, édition 2011

«Regards solidaires dans l Oise» Concours photo, édition 2011 DOSSIER DE PRESSE «Regards solidaires dans l Oise» Concours photo, édition 2011 «Regards solidaires dans l Oise» La solidarité dans l objectif, du 4 mai au 30 août 2011 I/ Zoom sur le concours photo Pour

Plus en détail

Compléments de programmation Objet AWT. Abstract Window Toolkit. Info 423. Références. Introduction. Modèle / Vue / Contrôleur (MVC) Introduction

Compléments de programmation Objet AWT. Abstract Window Toolkit. Info 423. Références. Introduction. Modèle / Vue / Contrôleur (MVC) Introduction Info 423 Compléments de programmation Objet Contenu : Interfaces graphiques, le package AWT Multitâches, les "Threads" Fichiers Volume horaire : 9 / 9 / 12 Références Différents tutoriels Java en ligne

Plus en détail

ISBN : 2-212-11407-9

ISBN : 2-212-11407-9 Groupe Eyrolles, 2005, ISBN : 2-212-11407-9 Table des matières Avant-propos................................................ XV CHAPITRE 1 Introduction..................................................

Plus en détail

Entités. Chapitre 1. Modèle entité-association. Associations et occurences d associations. Exemple

Entités. Chapitre 1. Modèle entité-association. Associations et occurences d associations. Exemple Entités Chapitre 1. Modèle entité-association Mountaz Hascoët, Univ. Montpellier II 1 Définition : On appelle entité toute classe d «objets concrets ou abstraits» ayant une existence propre et présentant

Plus en détail