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

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

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

Transcription

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Algorithmique et programmation avec Java (NFA002)

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

Plus en détail

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

COMMENT DÉFINIR L ORIENTÉ OBJET

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

Plus en détail

Architectures Logicielles et Matérielles Travaux Dirigés Circuits

Architectures Logicielles et Matérielles Travaux Dirigés Circuits UNIVERSITE Joseph FOURIER, Grenoble U.F.R. d Informatique et Maths. Appliquées Architectures Logicielles et Matérielles Travaux Dirigés Circuits Rappel : dessins des portes logiques. Déroulement envisagé

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

Analyse des déplacements des objets mobiles : définition de comportements types

Analyse des déplacements des objets mobiles : définition de comportements types Analyse des déplacements des objets mobiles : définition de comportements types Thomas Devogele Université François Rabelais (Tours) thomas.devogele@univ-tours.fr Les déplacements L analyse des déplacements

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

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire.

C ellules. Gestion et récupération automatique de mémoire. Principes des lang. de progr. INE 11. Allocation dynamique de mémoire. Principes des lang. de progr. INE 11 Michel Mauny ENSTA ParisTech Prénom.Nom@ensta.fr Michel Mauny (ENSTA ParisTech) INE 11 Prénom.Nom@ensta.fr 1 / 37 Gestion et récupération automatique de mémoire lanage

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

Algorithmique et Structures de données Feuille 5 : Arbres binaires

Algorithmique et Structures de données Feuille 5 : Arbres binaires Université Bordeaux Algorithmique et Structures de données Feuille : Arbres binaires On considère le type abstrait arbrebinaire d objet défini en cours. Pour rappel voir annexe A. LicenceInformatique0-0

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

Modèle e-a étendu: MCD (Modèle conceptuel des données) de Merise

Modèle e-a étendu: MCD (Modèle conceptuel des données) de Merise 58 Modèle e-a étendu: MCD (Modèle conceptuel des données) de Merise Héritage Contrainte d intégrité Fonctionnelle (CIF) 59 Héritage S impose dans 2 cas : Spécialisation : permet de modéliser dans l'ensemble

Plus en détail

Modélisation et simulation économiques Chap 3 Introduction à la plateforme NetLogo

Modélisation et simulation économiques Chap 3 Introduction à la plateforme NetLogo Modélisation et simulation économiques Chap 3 Introduction à la plateforme NetLogo Murat Yıldızoğlu http ://yildizoglu.info Université Bordeaux IV GREΘA (UMR CNRS 5113) NetLogo? Eléments de langage Plateforme

Plus en détail

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

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

Plus en détail

Modules et sous-modules

Modules et sous-modules Modules et sous-modules Un module peut contenir des sous-modules. Le principe de la portée lexicale (angl. : lexical scoping) s applique. Un module contient des définitions de 1. Types (concrets ou abstraits)

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

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

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

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

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

1. Présentation du réseau téléphonique utilisé pour le TP

1. Présentation du réseau téléphonique utilisé pour le TP LP CHATEAU BLANC 45 CHALETTE/LOING BAC PRO SEN TR TP N 2 THÈME : TELEPHONIE SUR IP ACADÉMIE D ORLÉANS-TOURS NOM : CI 11 : INSTALLATION ET CONFIGURATION DE SYSTEMES TR OBJECTIFS : CONFIGURER ET METTRE EN

Plus en détail

Projet 1 ENS Lyon L3IF

Projet 1 ENS Lyon L3IF Projet 1 ENS Lyon L3IF Génération de code Sébastien Briais 8 janvier 2008 Dans cette partie, vous allez devoir implémenter le générateur de code pour l émulateur DLX risc-emu. À rendre pour le 18 janvier

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

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

Système d information

Système d information w w w. a g r o p a r i s t e c h. f r Système d information http://www.agroparistech.fr/systeme-d-information.html Formulaires avec AgroSIXPack Liliana IBANESCU UFR Informatique Département MMIP Année

Plus en détail

Geckoman : le superhéros

Geckoman : le superhéros Rubrique : Sur la piste Page : 6 et 7 Fiche pédagogique Magazine Explotechno Février 2015 Titre : Le gecko : un lézard techno! Geckoman : le superhéros Compétences Français Lire des textes variés Écrire

Plus en détail

Sommaire. Séquence 3. Séance 1. Séance 2. Comment apporter l énergie nécessaire au fonctionnement de nos muscles?

Sommaire. Séquence 3. Séance 1. Séance 2. Comment apporter l énergie nécessaire au fonctionnement de nos muscles? Sommaire Séquence 3 Pour nous déplacer, prendre un objet, monter des escaliers, nous utilisons nos muscles. Quand nous devons faire un effort important, il faut prendre des aliments riches en énergie,

Plus en détail

Fiche procédure : Renouvellement des certificats SageDirect

Fiche procédure : Renouvellement des certificats SageDirect 1 / 7 Fiche procédure : Renouvellement des certificats SageDirect A : CONTEXTE Les 3 certificats nécessaires pour les transferts bancaires via Sage direct ont une durée de validité qui couvre généralement

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

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

Shibboleth sur REAUMUR

Shibboleth sur REAUMUR REAUMUR / ACO TIC/PRES Université de Bordeaux Shibboleth sur REAUMUR Journée Fédération du CRU Paris, 25 Janvier 2007 Laurent FACQ - facq@u-bordeaux.fr www.reaumur.net REseau Aquitain des Utilisateurs

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

CENTRAVET WEBVETO Guide d utilisation V2.0 SOMMAIRE

CENTRAVET WEBVETO Guide d utilisation V2.0 SOMMAIRE SOMMAIRE SOMMAIRE 1- OBJET DU DOCUMENT... 3 2- GESTION DE VOS CLIENTS... 4 2.1. Inscriptions : Nouveaux Clients... 4 2.2. Suivi des inscriptions : Gestion des clients... 5 2.3. La fiche client... 6 2.4.

Plus en détail

Manuel d'utilisation

Manuel d'utilisation Automotive Diagnostic Software ScanMaster ELM Manuel d'utilisation Support technique: support@wgsoft.de Copyright 2006 WGSoft.de. All rights reserved Index Se connecter au véhicule 2. Infos Véhicule 3.

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

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

2. DatabaseDesign. www.learndb.com. Dr. Imed Bouchrika Dept of Mathematics & Computer Science University of Souk-Ahras imed@imed.

2. DatabaseDesign. www.learndb.com. Dr. Imed Bouchrika Dept of Mathematics & Computer Science University of Souk-Ahras imed@imed. 2. DatabaseDesign www.learndb.com Dr. Imed Bouchrika Dept of Mathematics & Computer Science University of Souk-Ahras imed@imed.ws Imed Bouchrika. Advanced Databases, Uni of Souk-Ahras 2013-2014 Thanks

Plus en détail

Titre : DOCUMENTATION MACRO VISIO : Utilisateur Version :

Titre : DOCUMENTATION MACRO VISIO : Utilisateur Version : CINETIC TRANSITIQUE Rue Fleury Jay 69520 Grigny (France) Téléphone (0) 4 78 73 00 07 Fax (0) 4 78 73 97 37 www.cinetic-industries.com Titre : DOCUMENTATION MACRO VISIO : Utilisateur Version : 1.00 Référence

Plus en détail

Introduction à Visual Basic

Introduction à Visual Basic La fenêtre (form) principale: Zone de titre Points d attraction pour le dessin des contrôles Menu Système Fenêtre s affichant lors de l exécution du programme 15 Raccourci F4 Propriétés de la fenêtre principale

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

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

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

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

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

Avertissement : ceci est un corrigé indicatif qui n engage que son auteur

Avertissement : ceci est un corrigé indicatif qui n engage que son auteur DCG UE8 SYSTÈMES D INFORMATION DE GESTION - session 2014 Proposition de CORRIGÉ 2014 dcg-lyon.fr Avertissement : ceci est un corrigé indicatif qui n engage que son auteur DOSSIER 1 ORGANISATION DES INSTANCES

Plus en détail

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée

BAZIN Danil et PRIEZ Jean-Baptiste. LEX & YACC : Calculatrice Évoluée BAZIN Danil et PRIEZ Jean-Baptiste LEX & YACC : Calculatrice Évoluée Table des matières 1 Introduction 3 2 Description 4 3 La grammaire utilisée 6 4 Lexèmes et FLEX 8 5 Analyse syntaxique et YACC 8 5.1

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

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

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

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

Plus en détail

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

INtelligence En VAlidation :

INtelligence En VAlidation : INtelligence En VAlidation : Simplifiez-vous la Validation. www.ineva.fr Siège social: 14 rue du Girlenhirsch 67400 Illkirch France SAS au capital de 370 000 Euros RCS Strasbourg TI 799 828 462 APE 7112B

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

TP oscilloscope et GBF

TP oscilloscope et GBF TP oscilloscope et GBF Ce TP est évalué à l'aide d'un questionnaire moodle. Objectif : ce travail a pour buts de manipuler l oscilloscope et le GBF. A l issu de celui-ci, toutes les fonctions essentielles

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

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

Retour d'expérience sur le comportement des utilisateurs face à l'authentification web. CAS, Shibboleth, le phishing et autres espiègleries

Retour d'expérience sur le comportement des utilisateurs face à l'authentification web. CAS, Shibboleth, le phishing et autres espiègleries Retour d'expérience sur le comportement des utilisateurs face à l'authentification web CAS, Shibboleth, le phishing et autres espiègleries Jérôme Bousquié IUT de Rodez OSSIR -RéSIST Septembre 2012 - p

Plus en détail

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

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

Plus en détail

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

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

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

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

Trio de conseils pour parcours élite

Trio de conseils pour parcours élite AVIS IMPORTANT Si vous choisissez le parcours Élite, on considère que vous êtes déjà sportif et en forme. On considère que vous ne commencez pas à vous entraîner aujourd hui avec le programme qui suit.

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

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

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

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

UML : Modéliser la Dynamique

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

Plus en détail

Cours d Algorithmique et Complexité

Cours d Algorithmique et Complexité Cours d Algorithmique et Complexité Structures de données (2e suite) Catalin Dima Arbres binaires de recherche Propriété de base des arbres binaires de recherche Soit x un noeud de l arbre. Alors : 1.

Plus en détail

Conférence sur le milieu marin pour les nouveaux arrivants

Conférence sur le milieu marin pour les nouveaux arrivants Communiqué de presse A Iloni, le 03/09/2015 Conférence sur le milieu marin pour les nouveaux arrivants 1 soirée, 2 thèmes : la charte d approche des mammifères marins et le réseau d observateurs C est

Plus en détail

Centres d'apprentissage

Centres d'apprentissage Centres d'apprentissage EL-101 Code Nom Description Prix un. EL-100 EL-101 EL-102 EL-112 EL-112-06 EL-113 Stéréo CD/Cassette Spirit TM Stéréo CD/Cassette Spirit TM pour 4 élèves Stéréo CD/Cassette Spirit

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

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

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

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

Téléphone logiciel. Guide de démarrage. Édition résidentielle TEL-GDF-RES-002-0903

Téléphone logiciel. Guide de démarrage. Édition résidentielle TEL-GDF-RES-002-0903 Téléphone logiciel Édition résidentielle Guide de démarrage TEL-GDF-RES-002-0903 Table des matières À PROPOS DE CE GUIDE 3 SERVICE 911 3 TÉLÉCHARGEMENT 4 INSTALLATION DU LOGICIEL 5 CONFIGURATION MULTIMÉDIA

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

Par Dimitri galayko Unité d enseignement Élec-info. Octobre-décembre 2005. 1.1 Contrôle d intégrité d une diode et reconnaissance des terminaux

Par Dimitri galayko Unité d enseignement Élec-info. Octobre-décembre 2005. 1.1 Contrôle d intégrité d une diode et reconnaissance des terminaux TP 3. Étude des diodes Par Dimitri galayko Unité d enseignement Élec-info pour master ACSI à l UPMC Octobre-décembre 2005 1 Étude préliminaire 1.1 Contrôle d intégrité d une diode et reconnaissance des

Plus en détail

Bases de données et sites WEB Cours 3 : SQL3 Langage

Bases de données et sites WEB Cours 3 : SQL3 Langage Bases de données et sites WEB Cours 3 : SQL3 Langage 1 Plan Références Requêtes simples Expressions de chemin Appels de fonctions et d opérateurs Création d instances Opérations sur les collections 2 Références

Plus en détail

BACCALAUREAT GENERAL

BACCALAUREAT GENERAL ACCALAUREAT GENERAL Session 2009 MATHÉMATIQUES - Série ES - Enseignement de Spécialité Liban EXERCICE 1 1) 2) C 3) C 4) A Explication 1. Chacun des logarithmes existe si et seulement si x > 4 et x > 2

Plus en détail

Ma représentation du problème

Ma représentation du problème Niveaux : 6 e et 8 e année, secondaire 3 Ma représentation du problème (Collecte de données) Matières scolaires : sciences de la nature, français, mathématiques Objectifs de l ERE : les connaissances,

Plus en détail

Configurer un pare-feu avec NETFILTER

Configurer un pare-feu avec NETFILTER Configurer un pare-feu avec NETFILTER Netfilter est le firewall des distributions linux récentes pris en charge depuis les noyaux 2.4. Il est le remplaçant de ipchains. La configuration se fait en grande

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

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

Guide des. interventions Personnes en difficulté Personnes âgées de 60 ans et plus Personnes handicapées

Guide des. interventions Personnes en difficulté Personnes âgées de 60 ans et plus Personnes handicapées Guide des interventions Edition 2010 Mot du président Le Centre Communal d Action Sociale de Saint-Yrieix-sur-Charente est un outil majeur de la politique sociale de la municipalité. Au delà des aides

Plus en détail

SPW DGO1 Voies lentes en Wallonie. Manuel utilisateur de l application cartographique

SPW DGO1 Voies lentes en Wallonie. Manuel utilisateur de l application cartographique SPW DGO1 Voies lentes en Wallonie de l application cartographique IDENTIFICATION Projet : Agoracités Auteur : Amélie Ledent Type de document : Ref. NSI: Version: 1.1 Ref. Client: Date : 17/03/2010 Statut:

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

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

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

UFRSTAPS Toulouse. UE11 Projet de développement VBA MASTER 2 Tribet Hervé

UFRSTAPS Toulouse. UE11 Projet de développement VBA MASTER 2 Tribet Hervé UFRSTAPS Toulouse UE11 Projet de développement VBA MASTER 2 Tribet Hervé 2009 I. Présentation Visual Basic pour Applications (VBA) est le langage de programmation des applications de Microsoft Office.

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

PHP PHP PHP PHP. Récupération des données d'un formulaire. Syntaxe

PHP PHP PHP PHP. Récupération des données d'un formulaire. Syntaxe Lionel Seinturier Programme s'exécutant côté serveur Web du code embarqué dans une page HTML entre les balises extension.php pour les pages les fichiers.php sont stockés sur le serveur (comme des

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

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

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