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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Le jour des corneilles

Le jour des corneilles Le jour des corneilles TABLE DES MATIERES I. A propos du film 1. Informations générales 2. Résumé du film II. Activités en classe A) Avant la séance ACTIVITE N 1 : Découvrir le film par l affiche ACTIVITE

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

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

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

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

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

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

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

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

Bases de Données Cours de SRC 1. Mathieu MANGEOT mathieu.mangeot@univ-savoie.fr

Bases de Données Cours de SRC 1. Mathieu MANGEOT mathieu.mangeot@univ-savoie.fr Bases de Données Cours de SRC 1 Mathieu MANGEOT mathieu.mangeot@univ-savoie.fr Objectifs du cours Analyser les besoins et modéliser les données d un système d information Mettre en œuvre des bases de données

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

Plan. - La VaR. - Introduction à l FRTB. - Principales révisions Frontières Banking / Trading book l Expected Shortfall Les horizons de liquidité

Plan. - La VaR. - Introduction à l FRTB. - Principales révisions Frontières Banking / Trading book l Expected Shortfall Les horizons de liquidité PAGE 1 F R T B ( F u n d a m e n t a l R e v i e w o f t h e T r a d i n g B o o k ) u n e n o u v e l l e p e r s p e c t i v e d e m e s u r e d e l a V A R. Y o u s s e f M e l l o u k i Plan PAGE 2

Plus en détail

IV Le Tapis Roulant ( ne pas confondre avec les ports séries COM des micro-ordinateurs PC )

IV Le Tapis Roulant ( ne pas confondre avec les ports séries COM des micro-ordinateurs PC ) Commande par Automate Programmable Industriel I - Introduction Le but de ce TP est de sensibiliser l étudiant au pilotage de processus répétitif par automate programmable en recréant dans ce TP une structure

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

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

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

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

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

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

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

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

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

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

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 6 Héritage en Java

Chapitre 6 Héritage en Java Chapitre 6: Héritage 1/12 Chapitre 6 Héritage en Java Chapitre 6: Héritage 2/12 1. Généralités L'héritage est le troisième des paradigmes de la programmation orientée objet (le 1 er étant l'encapsulation,

Plus en détail

Examen. Département de génie électrique et de génie informatique Faculté des sciences et de génie. Génie logiciel orienté objet IFT-20829

Examen. Département de génie électrique et de génie informatique Faculté des sciences et de génie. Génie logiciel orienté objet IFT-20829 Examen 40% note du trimestre Documentation permise QUESTION 1 (100 points) Dans cet examen, nous allons explorer l utilisation de la notation UML et des design patterns dans le contexte de la modélisation

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

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

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

COMMENT DÉFINIR L ORIENTÉ OBJET

COMMENT DÉFINIR L ORIENTÉ OBJET COMMENT DÉFINIR L ORIENTÉ OBJET De manière superficielle, le terme «orienté objet», signifie que l on organise le logiciel comme une collection d objets dissociés comprenant à la fois une structure de

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

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

Du Lundi 5 Janvier au Vendredi 6 Février 2015

Du Lundi 5 Janvier au Vendredi 6 Février 2015 Du Lundi 5 Janvier au Vendredi 6 Février 2015 Mairie de Saint-Vougay 1 Rue de Plouescat 29440 Saint-Vougay Tel 02 98 69 97 97 04 Mail saintvougay.mairie@wanadoo.fr Règlement Intérieur 1) Définition Les

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

Titre de la séquence : Danse contemporaine Nombre de séances prévues : 6 Séance 1

Titre de la séquence : Danse contemporaine Nombre de séances prévues : 6 Séance 1 Cycle 3 Niveau : CM Champ disciplinaire : EPS Titre de la séquence : Danse contemporaine Nombre de séances prévues : 6 Séance 1 Compétences disciplinaires pour la séquence : Concevoir et réaliser des actions

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

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

Education. l'orientation

Education. l'orientation Code : Connaissance Des Formations Education Centre d'information et d'orientation à l'orientation L ORIENTATION EN LA CLASSE DE 3EME Niveau : Durée : Matériel : - brochure régionale 3 ème - transparents

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

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

Ce que tu es en droit d attendre des adultes qui travaillent avec toi

Ce que tu es en droit d attendre des adultes qui travaillent avec toi Ce que tu es en droit d attendre des adultes qui travaillent avec toi Guide pour les enfants et les jeunes Avis aux enfants et aux jeunes du monde entier ce guide est pour vous. Il a été rédigé par un

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

Les nouveautés d AppliDis Fusion 4 Service Pack 2

Les nouveautés d AppliDis Fusion 4 Service Pack 2 Les nouveautés d AppliDis Fusion 4 Service Pack 2 Systancia Publication : Novembre 2011 Résumé La nouvelle version AppliDis Fusion 4 Service Pack 2 ajoute des fonctionnalités nouvelles au produit AppliDis.

Plus en détail

Programmation MFC. Renaud PÉTERI Dahbia SEMANI-DELMI. Introduction aux MFC

Programmation MFC. Renaud PÉTERI Dahbia SEMANI-DELMI. Introduction aux MFC Programmation MFC Renaud PÉTERI Dahbia SEMANI-DELMI 1 Introduction aux MFC! Programmation Windows " La fonction WinMain() " La fonction WndProc()! Appels de l API Windows (Interface de programmation d

Plus en détail

SEMAINE DES MATHEMATIQUES

SEMAINE DES MATHEMATIQUES SEMAINE DES MATHEMATIQUES Titre de l'activité Découverte de la suite de Fibonacci ou cinq activités à traiter simultanément : les billes, les escaliers, les étages peints, les fauxbourdons, les lapins

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

REFORME DES RYTHMES SCOLAIRES. Organisation 2014/2015

REFORME DES RYTHMES SCOLAIRES. Organisation 2014/2015 REFORME DES RYTHMES SCOLAIRES Organisation 2014/2015 La grille votée par le conseil municipal le 6 janvier 2014 8h30-9h00 LUNDI MARDI JEUDI VENDREDI SAMEDI 9h00-11h00 11h00-11h30 ECOLE ECOLE ECOLE ECOLE

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

LES AUTOMATES. Automate

LES AUTOMATES. Automate 1.1 Généralités 1 AUTOMATES SYNCHRONES LES AUTOMATES On appelle automate un opérateur séquentiel dont l'état et les sorties futurs sont fonction des entrées et de l'état présent de l'automate (Figure 1).

Plus en détail

Comment améliorer les performances thermiques d une habitation?

Comment améliorer les performances thermiques d une habitation? thermiques d une habitation? E1-1/6 Le confort 1 Définissez en trois points le confort thermique : 2-1 Sur brouillon ou sur votre cahier d expérience, émettez vos hypothèses sur la maison de demain. Comment

Plus en détail

Doc.1. - le THÈME de votre dossier Design d espace. Doc.2

Doc.1. - le THÈME de votre dossier Design d espace. Doc.2 DÉFINITION Définir une PROBLÉMATIQUE, c est POSER une question dont la réponse n est pas «oui» ou «non». Elle a pour fonction de DÉVELOPPER sa réflexion, son sens critique en formulant des axes de recherche

Plus en détail

3 Instructions (suite)

3 Instructions (suite) Initiation à la programmation et cours 2 1 3 Instructions (suite) Introduction En comme en programmation : l'ordre des instructions est primordial Le processeur exécute les instructions dans l'ordre dans

Plus en détail

UML : Modéliser la Dynamique

UML : Modéliser la Dynamique MAI NFE103 Année 2013-2014 UML : Modéliser la Dynamique F.-Y. Villemin (f-yv@cnam.fr) Plan! Introduction! Cas d'utilisation: Diagramme des Cas d'utilisation! Evènements! Scénario: Diagrammes de Séquence

Plus en détail

Modélisation Conceptuelle de Base de Données

Modélisation Conceptuelle de Base de Données odélisation Conceptuelle de Base de Données Akoka-Wattiau 1 SOAIRE 1. La conception de base de données 2. Pourquoi la modélisation conceptuelle? 3. Le modèle ER 4. Comment modéliser? 5. Le modèle ER étendu

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

Le langage Scheme : Niveau Intermédiaire III, dessin D'après les cours de J.-P. Roy (Nice) et Jerzy Karczamarczuk (Caen)

Le langage Scheme : Niveau Intermédiaire III, dessin D'après les cours de J.-P. Roy (Nice) et Jerzy Karczamarczuk (Caen) Le langage Scheme : Niveau Intermédiaire III, dessin D'après les cours de J.-P. Roy (Nice) et Jerzy Karczamarczuk (Caen) I. Le principe On va faire du graphisme en utilisant un objet nommé la Tortue (c.f.

Plus en détail

SCI03 - Analyse de données expérimentales

SCI03 - Analyse de données expérimentales SCI03 - Analyse de données expérimentales Introduction à la statistique Thierry Denœux 1 1 Université de Technologie de Compiègne tél : 44 96 tdenoeux@hds.utc.fr Automne 2014 Qu est ce que la statistique?

Plus en détail

Détection de la terminaison distribuée

Détection de la terminaison distribuée Cours Algorithmique répartie Master 2 Université Paris-Diderot Devoir 1 (à rendre avant le 22 février 2010) Détection de la terminaison distribuée Généralités Π = {p 0,..., p n 1 } est l ensemble des processus.

Plus en détail

Programmation orientée objet et événementielle en JavaScript. Département SRC Pôle Universitaire de Vichy Bruno Bachelet

Programmation orientée objet et événementielle en JavaScript. Département SRC Pôle Universitaire de Vichy Bruno Bachelet Programmation orientée objet et événementielle en JavaScript Département SRC Pôle Universitaire de Vichy Bruno Bachelet «PARTIE IV Introduction au paradigme objet Programmation objet et événementielle

Plus en détail

Quoi de n œuf? Sommaire. Descriptif et objectifs de l atelier. Réponses aux jeux

Quoi de n œuf? Sommaire. Descriptif et objectifs de l atelier. Réponses aux jeux Quoi de n œuf? Sommaire Descriptif et objectifs de l atelier Jeux Réponses aux jeux p2 p3 p10 Biotropica Butte de la capoulade 27100 Val de Reuil www.biotropica.fr - 02.32.40.71.44 1 Descriptif et objectifs

Plus en détail

façades commerciales en centre ancien

façades commerciales en centre ancien façades commerciales en centre ancien 1 INTRODUCTION L aménagement et la conception des façades commerciales, ces fameuses «vitrines» inscrites désormais de manière indélébile dans l histoire de la ville,

Plus en détail

PROJET TECHNIQUE DE RÉALISATION D UN PROTOTYPE ET CONTRÔLE QUALITÉ SESSION : 2011 UNITÉ : U 33 COEF. : 3 DURÉE : 120 heures

PROJET TECHNIQUE DE RÉALISATION D UN PROTOTYPE ET CONTRÔLE QUALITÉ SESSION : 2011 UNITÉ : U 33 COEF. : 3 DURÉE : 120 heures Nom:...... Prénom:....... Classe: T MOD Page 1 / 6 BAC. PRO. Métiers de la Mode - Vêtement - PROJET TECHNIQUE DE RÉALISATION D UN PROTOTYPE ET CONTRÔLE QUALITÉ SESSION : 2011 UNITÉ : U 33 COEF. : 3 DURÉE

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

12. Conception des applications

12. Conception des applications Conception objet en Java avec BlueJ une approche interactive 12. Conception des applications David J. Barnes, Michael Kölling version française: Patrice Moreaux Rédigé avec 1.0 Principaux concepts abordés

Plus en détail

petite école mon grand coffret petite section 3 ans

petite école mon grand coffret petite section 3 ans la petite école mon grand coffret petite section 3 ans + Mon grand coffret petite section couleurs lettres 5 planches de loto 30 jetons côté silhouette côté image Lettre aux parents Apprendre les couleurs

Plus en détail

Collections. Nouveautés 2015. Georges G. www.georgesg.com. Edition Janvier 2015

Collections. Nouveautés 2015. Georges G. www.georgesg.com. Edition Janvier 2015 Collections Nouveautés 2015 Edition Janvier 2015 Sommaire Bord de Mer - Vacances-Golf...3 T 22014 T 51024 T 51025 PROMENADE EN BORD DE MER SUR LE GREEN GOLF PATCH Collection Untereiner...9 T 22012 T 22013

Plus en détail

GOL502 Industries de services

GOL502 Industries de services GOL502 Industries de services Conception d un service Partie IIb Version 2013 Introduction Conception d un service partie IIb Nous verrons dans ce chapitre Modélisation d un service; Langage de modélisation

Plus en détail

1 ERE DIVISION FÉDÉRALE

1 ERE DIVISION FÉDÉRALE CHAMPIONNAT DE FRANCE 1 ERE DIVISION FÉDÉRALE CLASSEMENT DES POULES A L ISSUE DE LA PHASE PRÉLIMINAIRE POULE 1 Points GA NJS Pts terrain Observations 1 RC CAMARGUE NIMOIS GARD 38 2 VALENCE SPORTIF 29 3

Plus en détail

CARNET DE VOYAGE. Octave FOURNEL Grand prix 2013 du concours scolaire Carnet de voyage.

CARNET DE VOYAGE. Octave FOURNEL Grand prix 2013 du concours scolaire Carnet de voyage. CARNET DE VOYAGE Voyage en Thaïlande Octave FOURNEL Grand prix 2013 du concours scolaire Carnet de voyage. Voyage sans retour!!! Cette année, c est vers la Thaïlande et Bangkok que nous entraînent matière,

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

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

FRANCAIS et MATHEMATIQUES

FRANCAIS et MATHEMATIQUES Évaluation à l'entrée au CM2 FRANCAIS et MATHEMATIQUES compétences cibles Livret de l élève Nom : Prénom : circonscription de Pontivy JLG version 1 FRANCAIS : Compétences cibles évaluées Orthographe Ecrire

Plus en détail

COLLECTION ACTIVITÉS AUTOUR D UN ALBUM CALINOURS VA FAIRE LES COURSES MS-GS

COLLECTION ACTIVITÉS AUTOUR D UN ALBUM CALINOURS VA FAIRE LES COURSES MS-GS COLLECTION ACTIVITÉS AUTOUR D UN ALBUM CALINOURS VA FAIRE LES COURSES MS-GS Dans l album, Calinours tient son panier de différentes manières : découpe les étiquettes, et colle-les en respectant la bonne

Plus en détail

Module : Fichier. Chapitre I : Généralités

Module : Fichier. Chapitre I : Généralités Module : Fichier Semestre 1 Année : 2010/2011-1- SOMMAIRE 1. Introduction 2. Définition d un fichier 3. Caractéristiques d un fichier 4. Topologie des fichiers 5. Résumé 6. QCM 7. Exercices 8. Bibliographie

Plus en détail