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

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

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

Transcription

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

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

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

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

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

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

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

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

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

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

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

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

Plus en détail

Programmation MacOSX / ios

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

Plus en détail

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

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

Plus en détail

Bases de données. Chapitre 1. Introduction

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

Plus en détail

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

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

Plus en détail

Diagramme de classes

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

Plus en détail

TD 1 - Structures de Traits et Unification

TD 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étail

Information utiles. cinzia.digiusto@gmail.com. webpage : Google+ : http://www.ibisc.univ-evry.fr/ digiusto/

Information 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étail

UML (Diagramme de classes) Unified Modeling Language

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

Plus en détail

LMI 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 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étail

INTRODUCTION AUX TESTS DE PERFORMANCE ET DE CHARGE

INTRODUCTION 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étail

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

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

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java 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étail

Présentation du Modèle de Référence pour les Bibliothèques FRBR

Pré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étail

Le filtrage de niveau IP

Le 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étail

Niveau CEl CE2. Le grand dauphin ou dauphin souffleur Tursiops truncatus

Niveau 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étail

DIRECTEUR ADJOINT DES VENTES

DIRECTEUR 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étail

Fonctions de deux variables. Mai 2011

Fonctions 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étail

Gestion Électronique de Documents et XML. Master 2 TSM

Gestion É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étail

LOGICIEL DC4D MONITOR

LOGICIEL 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étail

Exercice : la frontière des portefeuilles optimaux sans actif certain

Exercice : 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étail

1. Création de l objet de stratégie

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

Chapitre 3. Les distributions à deux variables

Chapitre 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étail

La JVM. La machine virtuelle Java. La JVM. La JVM

La 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étail

Algorithmique et structures de données I

Algorithmique 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étail

Exercice 1. Partie 1. Questions

Exercice 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étail

Algorithmique répartie

Algorithmique 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étail

SEANCE 2 : éléments de programmation

SEANCE 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étail

Bases Java - Eclipse / Netbeans

Bases 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étail

ESPACE MULTIMEDIA DU CANTON DE ROCHESERVIERE

ESPACE 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étail

En ce qui concerne les marques figuratives, vous devez contrôler la similarité sur deux plans: qu est-il représenté?

En 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étail

Grilles acoustiques. Type NL 6/6/F/2

Grilles 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étail

TP1 : Initiation à Java et Eclipse

TP1 : 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étail

LOGIcIEL WZP. QUICKSTART-logiciel-WZP-6004V1.2

LOGIcIEL 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étail

Tutoriel Mathematica Les graphiques

Tutoriel 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étail

FOSS Enterprise Integration Plattaform

FOSS 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étail

ET REGISTRE DE PRESENCE

ET 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étail

Modélisation de bases de données : Le modèle relationnel

Modé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étail

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

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

Plus en détail

Le 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 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étail

Mars 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 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étail

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

4-7 GRAND CONCOURS. ans 2014-20. Les poissons

4-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étail

INITIATION AU LANGAGE JAVA

INITIATION 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étail

Situation d apprentissage Les traits vivants avec le logiciel LopArt DUO (#P002)

Situation 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étail

OASIS www.oasis-open.org/committees/xacml/docs/docs.shtml Date de publication

OASIS 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étail

Termes de référence Appel à consultants, UNIVERSITE DE SOUSSE PAQ

Termes 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étail

Notice d installation de la Centrale VIGIK DGM1

Notice 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étail

Créer le schéma relationnel d une base de données ACCESS

Cré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étail

OCL - Object Constraint Language

OCL - 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étail

MASTER DROIT, ECONOMIE, GESTION Mention DROIT PUBLIC

MASTER 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étail

Vision 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 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étail

Algorithmique avec Algobox

Algorithmique 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étail

Bien régler la température de chauffage

Bien 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étail

UTILISATION DE LA BORNE PAR LE CLIENT

UTILISATION 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étail

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

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

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

Objet : Alimentation pour ordinateur portable et autre. Alimentation Schéma 1

Objet : 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étail

Protection individuelle

Protection 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étail

Guide utilisateur i-milo >> Décisionnel

Guide 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étail

NEWSLETTER 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 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étail

Arts Visuels. Organisme. Organisme Escadron 646

Arts 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étail

IFT3902 : (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 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étail

Programmer 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) 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étail

Faire part naissance coquelicot

Faire 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étail

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan

Cours 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étail

Réussir l ouverture d un commerce de restauration rapide

Ré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étail

un nouvel œil pour l analyse de mouvement

un 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étail

UML. Diagrammes de classes (suite) Delphine Longuet. delphine.longuet@lri.fr

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

Les indices à surplus constant

Les 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étail

Circuit comportant plusieurs boucles

Circuit 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étail

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

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

FONCTION 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étail

Document 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 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étail

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

Suivant 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étail

Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables

Notes 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étail

JAVA TD0. Prise en main du langage Environnement de base JAVA 1

JAVA 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étail

CPR Informatique. (poste 3159 ou 3164) Septembre 2002

CPR 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étail

Mode d emploi de la boîte vocale. Table des matières

Mode 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étail

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.

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

Corrigés des premiers exercices sur les classes

Corrigé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étail

Création d une SIGNATURE ANIMÉE avec PHOTOFILTRE 7

Cré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étail

Plateforme de support en ligne. Guide d utilisation

Plateforme 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étail

www.financeimmo.com Le contrat d assurance est obligatoire à partir du moment où vous possédez une cylindré: auto, moto, scooter.

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

Master e-secure. VoIP. RTP et RTCP

Master 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étail

Chapitre 1 : La gestion dynamique de la mémoire

Chapitre 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étail

Programmation. fonctionnelle, impérative, logique et orientée objet

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

Plan. Patrons de conception. Motivations. Design Pattern : principe. Philippe Collet

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

TD Objets distribués n 3 : Windows XP et Visual Studio.NET. Introduction à.net Remoting

TD 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étail

ht 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

ht 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étail

DESCRIPTIONS DES PRODUITS ET MÉTRIQUES

DESCRIPTIONS 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étail

TP : Gestion d une image au format PGM

TP : 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étail

Cré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 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étail

zzz CONCOURS 9 novembre 2014

zzz 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étail

Nouvelles 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 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étail

F. Barthélemy. 17 mai 2005

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

Programmation Orientée Objet

Programmation 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étail

TITRE PARTIE TITRE SECTION. Faire des anaglyphes avec CatiaV5

TITRE 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