Animal. Animal-marin. Baleine. Mobby-Dick. est-un
|
|
- Marie-Madeleine Simon
- il y a 9 ans
- Total affichages :
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: ~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
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étailProgrammation 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étailPlan. - 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étailBases de données. Chapitre 1. Introduction
Références : Bases de données Pierre Wolper Email : pw@montefiore.ulg.ac.be URL : http : //www.montefiore.ulg.ac.be/~pw/ http : //www.montefiore.ulg.ac.be/ ~pw/cours/bd.html Henry F. Korth, Abraham Silberschatz,
Plus en détailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
Plus en détailDiagramme 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étailTD 1 - Structures de Traits et Unification
TD 1 - Structures de Traits et Unification 1 Définitions Un trait (en: feature) est un couple attribut-valeur. Une structure de traits (en: feature structure) est un ensemble de traits. On peut les représenter
Plus en détailInformation utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/
Systèmes de gestion de bases de données Introduction Université d Evry Val d Essonne, IBISC utiles email : cinzia.digiusto@gmail.com webpage : http://www.ibisc.univ-evry.fr/ digiusto/ Google+ : https://plus.google.com/u/0/b/103572780965897723237/
Plus en détailUML (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étailLMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour
LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections
Plus en détailINTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE
INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE 1 Introduction aux tests de performance et de charge Sommaire Avertissement...2 Aperçu...3 1. Création du scénario de navigation web (Test web)...4 2.
Plus en détailConsigne : 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étailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailPrésentation du Modèle de Référence pour les Bibliothèques FRBR
Submitted on: 03.08.2015 Présentation du Modèle de Référence pour les Bibliothèques FRBR French translation of the original paper: Introducing the FRBR Library Reference Model. Traduit par : Mélanie Roche,
Plus en détailLe filtrage de niveau IP
2ème année 2008-2009 Le filtrage de niveau IP Novembre 2008 Objectifs Filtrage : Le filtrage permet de choisir un comportement à adopter vis à vis des différents paquets émis ou reçus par une station.
Plus en détailNiveau CEl CE2. Le grand dauphin ou dauphin souffleur Tursiops truncatus
Niveau CEl CE2 Le grand dauphin ou dauphin souffleur Tursiops truncatus INTRODUCTION: non un poisson. Le dauphin souffleur ou grand dauphin est un mammifère marin, et Comme tous les mammifères il suivantes
Plus en détailDIRECTEUR ADJOINT DES VENTES
Email : laurent@laposte.net 34 ans, Marié, 2 enfants (6 ans et 9 ans) Email : laurent@laposte.net 34 ans, Marié, 2 enfants (6 ans et 9 ans) Email : laurent@laposte.net 34 ans, Marié, 2 enfants (6 ans et
Plus en détailFonctions de deux variables. Mai 2011
Fonctions de deux variables Dédou Mai 2011 D une à deux variables Les fonctions modèlisent de l information dépendant d un paramètre. On a aussi besoin de modéliser de l information dépendant de plusieurs
Plus en détailGestion Électronique de Documents et XML. Master 2 TSM
Gestion Électronique de Documents et XML Master 2 TSM I n t r o d u c t i o n Les formats de données F o r m a t s d e d o n n é e Format de donnée : manière de représenter des informations dans un document
Plus en détailLOGICIEL DC4D MONITOR
THQtronic LOGICIEL DC4D MONITOR La communication entre PC et DC4D ne peut se faire qu à l aide du câble de liaison USB-TTL de FTDI référence TTL-232R-5V-AJ vendu en option. DC4D Monitor est la même application
Plus en détailExercice : la frontière des portefeuilles optimaux sans actif certain
Exercice : la frontière des portefeuilles optimaux sans actif certain Philippe Bernard Ingénierie Economique & Financière Université Paris-Dauphine Février 0 On considère un univers de titres constitué
Plus en détail1. Création de l objet de stratégie
1. Création de l objet de stratégie 3. Lien de l objet de stratégie 4. Réglage de compatibilité avec IE 9 à 11 1. Création de l objet de stratégie On ouvre la console de gestion des stratégies de groupe
Plus en détailChapitre 3. Les distributions à deux variables
Chapitre 3. Les distributions à deux variables Jean-François Coeurjolly http://www-ljk.imag.fr/membres/jean-francois.coeurjolly/ Laboratoire Jean Kuntzmann (LJK), Grenoble University 1 Distributions conditionnelles
Plus en détailLa JVM. La machine virtuelle Java. La JVM. La JVM
La machine virtuelle Java Historique et rappels Organisation mémoire de la JVM Le garbage collector Le bytecode, la machine à pile. Les threads Suivi, tracé, optimisation d un programme Java JVM embarquées
Plus en détailAlgorithmique et structures de données I
Algorithmique et structures de données I Riadh Ben Messaoud Université 7 novembre à Carthage Faculté des Sciences Économiques et de Gestion de Nabeul 1ère année Licence Fondamentale IAG 1ère année Licence
Plus en détailExercice 1. Partie 1. Questions
Exercice 1 Partie 1 Considérons un réveille-matin simplifié : 1. On peut mettre l alarme on ou off ; 2. Quand l heure courante devient égale à l heure d alarme, le réveil sonne sans s arrêter. 3. On peut
Plus en détailAlgorithmique répartie
Université Joseph Fourier 23/04/2014 Outline 1 2 Types de communication message envoyé à un groupe de processus Broadcast (diffusion) message envoyé à tous les processus du systèmes Unicast message envoyé
Plus en détailSEANCE 2 : éléments de programmation
NETLOGO Étude et modélisation de phénomènes collectifs à l aide d un logiciel de développement dédié Netlogo SEANCE 2 : éléments de programmation 1 «Agents» Tortues Création de tortues : par l observateur,
Plus en détailBases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Plus en détailESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE
ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE Atelier «pour approfondir» Montage vidéo avec Windows Live Movie Maker 1 Présentation de Windows Live Movie Maker Windows Live Movie Maker est le logiciel de
Plus en détailEn ce qui concerne les marques figuratives, vous devez contrôler la similarité sur deux plans: qu est-il représenté?
En choisissant votre marque, vous devriez veiller à ce qu elle se distingue suffisamment de marques déjà enregistrées. Une marque peut en effet être exclue de la protection si elle risque d être confondue
Plus en détailGrilles acoustiques. Type NL 6/6/F/2
Grilles acoustiques Type NL //F/ Sommaire Description Description Exécutions Dimensions et poids Constructions modulaires Options Installation 5 Données techniques, type NL Données techniques type, NL
Plus en détailTP1 : Initiation à Java et Eclipse
TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les
Plus en détailLOGIcIEL WZP. QUICKSTART-logiciel-WZP-6004V1.2
GUIDE DE Démarrage rapide du LOGIcIEL WZP QUICKSTART-logiciel-WZP-6004V1.2 Consignes de sécurité importantes ATTENTION! Avant de commencer l installation de votre matériel, lisez attentivement la section
Plus en détailTutoriel Mathematica Les graphiques
Tutoriel Mathematica Les graphiques Adaptation du tutoriel gratuit sur le Web par Éric Gaul, Dominic Boire et Issa Lizon (voir Médiagraphie). Modifié pour Mathematica 7 par Jean-Philippe Samson. Maintenant
Plus en détailFOSS Enterprise Integration Plattaform
FOSS Enterprise Integration Plattaform 1 Modèle architectural Visual tools Human Activity Orchestr. Integration ESB Assembly 1 JBI BC e-form BPEL Server Assembly 2 SCA Assemly 3 Enterprise Monitor MetaDB
Plus en détailET REGISTRE DE PRESENCE
Fiche 4 LE PORTAIL DES EEDF CALENDRIER D ACTIVITES ET REGISTRE DE PRESENCE Groupes Dans cette fiche Gérer le calendrier Envoyer des invitations à partir d une date Tenir son registre de présence Le portail
Plus en détailModélisation de bases de données : Le modèle relationnel
Modélisation de bases de données : Le modèle relationnel Rappel chapitre 1 C est quoi un modèle? Type de modèle : Modèle hiérarchique Modèle réseau Modèle objet Modèle relationnel Cours BD Dr REZEG K 1
Plus en détailII. 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étailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
Plus en détailMars 2009 Guide Mercedes-Benz du témoin de remise à zéro du service
Mars 2009 Guide Mercedes-Benz du témoin de remise à zéro du service Sommaire Modèle 451.3 /4 (smart)..... 3 Modèle 245 (Classe B)... 5 Modèles 203 et 209 (Classe C et Classe CLK)... 7 Modèles 166, X166,
Plus en détailLe Test d effort. A partir d un certain âge il est conseillé de faire un test tous les 3 ou quatre ans.
Le Test d effort L'épreuve du test d'effort est un examen effectué en général par un cardiologue ou un médecin du sport. Le test d'effort permet de mesurer le rythme cardiaque, la pression artérielle,
Plus en détail4-7 GRAND CONCOURS. ans 2014-20. Les poissons
4-7 GRAND CONCOURS ans 15 2014-20 Les poissons ÉDITO par Clara Recordier, rédactrice en chef de Wakou. Tu es un petit curieux de nature et tu aimes beaucoup les poissons? Alors, ce concours est fait pour
Plus en détailINITIATION AU LANGAGE JAVA
INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal
Plus en détailSituation d apprentissage Les traits vivants avec le logiciel LopArt DUO (#P002)
(#P002) Situation Description... 2 Compétences visées... 2 Préparation (Environ 30 minutes)... 3 Réalisation (Environ 45 minutes)... 4 Intégration (Environ 15 minutes)... 5 Réinvestissement... 5 Fiche
Plus en détailOASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication
Statut du Committee Working Draft document Titre XACML Language Proposal, version 0.8 (XACML : XML Access Control Markup Language) Langage de balisage du contrôle d'accès Mot clé Attestation et sécurité
Plus en détailTermes de référence Appel à consultants, UNIVERSITE DE SOUSSE PAQ
UNIVERSITE DE SOUSSE Termes de référence Appel à consultants, UNIVERSITE DE SOUSSE PAQ «Fourniture de solutions logicielles et de services nécessaires pour la mise en œuvre des services du Portail SIGNES
Plus en détailNotice d installation de la Centrale VIGIK DGM1
Notice d installation de la Centrale VIGIK DGM1 Version 3.5 NOTICE DE MONTAGE ET D UTILISATION N homologation : PS 200306-01 MS 200306-02 Informations préliminaires Présentation des possibilités de la
Plus en détailCréer le schéma relationnel d une base de données ACCESS
Utilisation du SGBD ACCESS Polycopié réalisé par Chihab Hanachi et Jean-Marc Thévenin Créer le schéma relationnel d une base de données ACCESS GENERALITES SUR ACCESS... 1 A PROPOS DE L UTILISATION D ACCESS...
Plus en détailOCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Plus en détailMASTER DROIT, ECONOMIE, GESTION Mention DROIT PUBLIC
Adopté par le conseil d UFR le 10 juillet 2013 Voté au CA du 1 er octobre 2013 Adopté par la CFVU du 09 septembre 2013 MASTER DROIT, ECONOMIE, GESTION Mention DROIT PUBLIC Master année 1 Arrêté d habilitation
Plus en détailVision industrielle et télédétection - Détection d ellipses. Guillaume Martinez 17 décembre 2007
Vision industrielle et télédétection - Détection d ellipses Guillaume Martinez 17 décembre 2007 1 Table des matières 1 Le projet 3 1.1 Objectif................................ 3 1.2 Les choix techniques.........................
Plus en détailAlgorithmique avec Algobox
Algorithmique avec Algobox 1. Algorithme: Un algorithme est une suite d instructions qui, une fois exécutée correctement, conduit à un résultat donné Un algorithme doit contenir uniquement des instructions
Plus en détailBien régler la température de chauffage
Température de chauffage Baisser la température en cas absence Bien régler la température de chauffage Ne pas gêner la diffusion de chaleur Fermer les volets / rideaux la nuit De même, ne pas mettre de
Plus en détailUTILISATION DE LA BORNE PAR LE CLIENT
Page1 UTILISATION DE LA BORNE PAR LE CLIENT Achat de carte de lavage en carte bancaire Page 3 et 4 Achat de carte de lavage en billet Page 5 et 6 Rechargement de la carte de lavage en carte bancaire Page
Plus en détailAnne Tasso. Java. Le livre de. premier langage. 6 e édition. Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN : 978-2-212-12648-8
Anne Tasso Java Le livre de premier langage 6 e édition Groupe Eyrolles, 2000, 2002, 2005, 2006, 2008, 2010, ISBN : 978-2-212-12648-8 Table des matières Avant-propos Organisation de l ouvrage..............................
Plus en détailArtica. Domain throttling avec Postfix. Révision Du 04 Février 2011 version 1.5.020416
Artica Domain throttling avec Postfix Révision Du 04 Février 2011 version 1.5.020416 Table des matières Introduction :...2 Historique du projet :...2 A qui s'adresse Artica?...2 Licence et support...2
Plus en détailObjet : Alimentation pour ordinateur portable et autre. Alimentation Schéma 1
Objet : Alimentation pour ordinateur portable et autre. Question posée par les membres du club d astronomie de Lavardac 47230. Est-il possible d augmenter l autonomie des ordinateurs portables (qui tout
Plus en détailProtection individuelle
Protection individuelle Franchise annuelle Ce plan n'est plus offert 200 $ 900 $ depuis le 1er mars 2015 1 006 $ / / 18-24 87,88 $ 71,71 $ - 39,35 $ 37,08 $ 63,91 $ 25-29 91,38 $ 74,47 $ - 41,04 $ 38,86
Plus en détailGuide utilisateur i-milo >> Décisionnel
Guide utilisateur i-milo >> Décisionnel Suivi des changements Version Date Chapitres impactés Opération effectuées sur le document 01 28/02/2014 Tous Initialisation du document pour les utilisateurs Contact
Plus en détailNEWSLETTER DE VOS CYBER-BASES DE LA VALETTE DU VAR JUIN 2012 EN JUIN : MODIFICATION DU PLANNING
NEWSLETTER DE VOS CYBER-BASES DE LA VALETTE DU VAR JUIN 2012 BONJOUR A TOUS MERCREDI 30 MAI 2012 : ASSEMBLEE GENERALE A PARTIR DE 15H AU PARC SAINTE CLAIRE EN JUIN : MODIFICATION DU PLANNING Du La permanence
Plus en détailArts Visuels. Organisme. Organisme Escadron 646
Responsable Éric Gravel Numéro de téléphone 819523-6090 Courriel gravelmusik@hotmail.com www.shockwavebluesband.com Facebook / Photographie Supports Acrylique / Photo Abstrait / Photo Escadron 646 Responsable
Plus en détailIFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels
IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels Yann-Gaël Guéhéneuc Professeur adjoint guehene@iro.umontreal.ca, local 2345 Département d informatique et de recherche
Plus en détailProgrammer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)
Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes
Plus en détailFaire part naissance coquelicot
Faire part naissance coquelicot Réf. : N001 - A partir de : 0,98 Ce faire part naissance est fantaisie. Le petit personnage fait un signe de silence. De petits motifs en formes de coquelicots rouge agrémente
Plus en détailCours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan
Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre
Plus en détailRéussir l ouverture d un commerce de restauration rapide
2015 Réussir l ouverture d un commerce de restauration rapide Figure 1 Assistant-juridique.fr Sommaire I Conditions d installation... 5 A) Pour ouvrir un restaurant fixe... 5 1) Obtenir un permis d exploitation...
Plus en détailun nouvel œil pour l analyse de mouvement
un nouvel œil pour l analyse de mouvement L entreprise EyeNetics La S.A.R.L. EyeNetics a pour objectif de simplifier l utilisation des systèmes d analyse de mouvement. Dans cette optique nous avons conçu
Plus en détailUML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr
Polytech Paris-Sud Formation initiale 3 e année Spécialité Informatique Année 2014-2015 UML Diagrammes de classes (suite) Delphine Longuet delphine.longuet@lri.fr Opérations Opérations Service qui peut
Plus en détailLes indices à surplus constant
Les indices à surplus constant Une tentative de généralisation des indices à utilité constante On cherche ici en s inspirant des indices à utilité constante à définir un indice de prix de référence adapté
Plus en détailCircuit comportant plusieurs boucles
Sommaire de la séquence 3 Séance 1 Qu est-ce qu un circuit comportant des dérivations? A Les acquis du primaire B Activités expérimentales C Exercices d application Séance 2 Court-circuit dans un circuit
Plus en détailProjet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai.
Projet L1, S2, 2015: Simulation de fourmis, Soutenance la semaine du 4 mai. 1 Introduction On considère une grille de 20 lignes 20 colonnes. Une case de la grille peut être vide, ou contenir une et une
Plus en détailFONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE
I/ GÉNÉRALITÉS I.1/ Fonction Un compteur binaire est utilisé : -pour compter un certain nombre d'évènements binaires -pour diviser la fréquence d'un signal logique par 2 m Page 1 FONCTION COMPTAGE BINAIRE
Plus en détailDocument de spécification du logiciel VALPO Définition du format des fichiers des
Document de spécification du logiciel VALPO Définition du format des fichiers des scénarios TELECOM Bretagne Projet VALPO - Démonstrateur de protocoles GSM/UMTS Département Réseaux, Sécurité, Multimédia
Plus en détailSuivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
Plus en détailNotes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables
Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables Guy Desaulniers Département de mathématiques et de génie industriel École Polytechnique de Montréal Automne 2014 Table des matières
Plus en détailJAVA TD0. Prise en main du langage Environnement de base JAVA 1
JAVA TD0 Prise en main du langage Environnement de base JAVA 1 Mon premier programme public class HelloWorld { public static void main(string [] arg){ System.out.println("Hello, World!"); main(string []
Plus en détailCPR Informatique. (poste 3159 ou 3164) Septembre 2002
CPR Informatique (poste 3159 ou 3164) Septembre 2002 Programmer en Java Table des matières 1.- PRESENTATION GENERALE DU LANGAGE JAVA...3 1.1. Introduction...3 1.2. Historique...3 1.3. Les principales raisons
Plus en détailMode d emploi de la boîte vocale. Table des matières
Mode d emploi de la boîte vocale Table des matières 1. Déviation de sa ligne sur sa boîte vocale... 2 2. Suppression de la déviation sur sa boîte vocale... 2 3. Lecture des messages... 3 3.1 Procédure
Plus en détailPlan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2.
Plan de notre intervention 1. Pourquoi le test de charge? 2. Les différents types de tests de charge 1.1. Le test de performance 1.2. Le test aux limites 3. Méthode 2.1. Pré-requis 2.2. Préparation des
Plus en détailCorrigés des premiers exercices sur les classes
Corrigés des premiers exercices sur les classes Exercice 2.1.1 utilisation d une classe Voici le texte d une classe représentant de façon sommaire un compte bancaire et les opérations bancaires courantes.
Plus en détailCréation d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7
Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7 L animation est obtenue par défilement des images décomposant le mouvement de traçage de la signature. Les étapes successives seront : 1. Choix de la
Plus en détailPlateforme de support en ligne. Guide d utilisation
Plateforme de support en ligne Guide d utilisation Sommaire Sommaire...2 Procédure de la plateforme de support...3 Accès à la plateforme de support en ligne...4 Créer un compte utilisateur...5 Oubli de
Plus en détailwww.financeimmo.com Le contrat d assurance est obligatoire à partir du moment où vous possédez une cylindré: auto, moto, scooter.
1 sur 5 25/09/2008 16:07 Vos crédits au meilleur taux Notre travail est de vous aider à rechercher les meilleures conditions commerciales correspondant à votre situation au moment où vous en avez besoin.
Plus en détailMaster e-secure. VoIP. RTP et RTCP
Master e-secure VoIP RTP et RTCP Bureau S3-354 Mailto:Jean.Saquet@unicaen.fr http://saquet.users.greyc.fr/m2 Temps réel sur IP Problèmes : Mode paquet, multiplexage de plusieurs flux sur une même ligne,
Plus en détailChapitre 1 : La gestion dynamique de la mémoire
Chapitre 1 : La gestion dynamique de la mémoire En langage C un programme comporte trois types de données : Statiques; Automatiques ; Dynamiques. Les données statiques occupent un emplacement parfaitement
Plus en détailProgrammation. fonctionnelle, impérative, logique et orientée objet
Programmation fonctionnelle, impérative, logique et orientée objet Introduction Les langages de programmation permettent de décrire des calculs de façon plus abstraite qu'un programme machine. Les programmes
Plus en détailPlan. Patrons de conception. Motivations. Design Pattern : principe. Philippe Collet
Plan Patrons de conception Philippe Collet Master 1 Informatique 2005-2006 http://deptinfo.unice.fr/twiki/bin/view/minfo/gloo Introduction Premier exemple Principes et classification Présentation des patrons
Plus en détailTD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting
IUT Bordeaux 1 2005-2006 Département Informatique Licence Professionnelle ~ SI TD Objets distribués n 3 : Windows XP et Visual Studio.NET Introduction à.net Remoting Partie 1 : l'analyseur de performances
Plus en détailht t p: // w w w.m e di al o gis.c om E - Ma i l : m ed i a l og i s @ m e di a l o g i s. c om Envoi des SMS
Page 1/8 Envoi des SMS La nouvelle fonctionnalité d envoi de SMS va vous permettre d envoyer des SMS directement à partir de Médialogis SQL. Ces SMS peuvent être générés automatiquement lors de la saisie
Plus en détailDESCRIPTIONS DES PRODUITS ET MÉTRIQUES
DESCRIPTIONS DES PRODUITS ET MÉTRIQUES DPM Adobe - Logiciel On-premise Adobe Campaign (2015v1) Les Produits et Services décrits dans cette DPM constituent le Logiciel On-premise et sont régis par les Conditions
Plus en détailTP : Gestion d une image au format PGM
TP : Gestion d une image au format PGM Objectif : L objectif du sujet est de créer une classe de manipulation d images au format PGM (Portable GreyMap), et de programmer des opérations relativement simples
Plus en détailCréer et modifier un fichier d'import des coordonnées approximatives avec Excel
Créer et modifier un fichier d'import des coordonnées approximatives avec Excel Manuel d'utilisation Date: 26.03.2015 Version: 1.0 Auteur: Christoph Rüfenacht Statut: En cours Libéré Classification: publique
Plus en détailzzz CONCOURS 9 novembre 2014
Bulletin d inscription Au concours du 9 nov 2014 TERRAZUR CAGNES SUR MER A nous faire parvenir avant le 20 octobre 2014 à l adresse suivante : CNAIB 06 bureaux 3000 Avenue Eugène Donadéi 06700 SAINT LAURENT
Plus en détailNouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires
Nouvelles propositions pour la résolution exacte du sac à dos multi-objectif unidimensionnel en variables binaires Julien Jorge julien.jorge@univ-nantes.fr Laboratoire d Informatique de Nantes Atlantique,
Plus en détailF. Barthélemy. 17 mai 2005
Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes
Plus en détailProgrammation Orientée Objet
Université de Pau et des Pays de l Adour Institut Universitaire de Technologie des Pays de l Adour Département Réseaux et Télécommunications 371, rue du Ruisseau BP 201 40004 Mont-de-Marsan Cedex tél :
Plus en détailTITRE PARTIE TITRE SECTION. Faire des anaglyphes avec CatiaV5
TITRE PARTIE TITRE SECTION Faire des anaglyphes avec CatiaV5 1 SOMMAIRE SOMMAIRE 1. QU'EST-CE QU'UN ANAGLYPHE? 3 2. LES LOGICIELS A INSTALLER 5 3. CREATION D'UN ANAGLYPHE FIXE 6 4. CREATION D'UN ANAGLYPHE
Plus en détail