您好,欢迎访问三七文档
ASurveyofConcurrentObject-OrientedProgrammingLanguagesTechnicalReportRM/96/4N.R.ScaifeDept.ofComputingandElectricalEngineeringHeriot-WattUniversityEdinburghEH144ASFebruary7,19961AbstractIssuesinthedesignandselectionofconcurrentobject-orientedlanguagesarediscussedandsomegen-eralprinciplesoutlined.Thebulkofthispaperisanextensive(althoughfarfromcomplete)enumerationofconcurrentobject-orientedlanguages,pastandpresent.Salientfeaturesarediscussedandunusualornovelaspectsofeachlanguagepointedout.Anattemptismadetodrawsomegeneralconclusionsfromworkinthisareaintermsofthefeaturesprovidedbythelanguagesandthehardwaretheyaretargettedon.1MotivationWearecurrentlyengagedinaprojecttoexploitfunctionalprogrammingasameansofdevelopingandmaintainingparallelprogrammes.Todatewehavedevelopedanumberofhand-builtapplicationsintheareaofcomputervision[118,88,99]andhavedevelopedaprototypeautomaticparallelisingcompilerbasedonStandardML[24].Wenowwishtoinvestigatetheroleofahigher-levelabstractionmechanisminourmethodologyandwouldliketobaseourresearchinthelightofexistingprojects.Althoughthesearchforabstractionmechanismsinparallelprogramminghasbeengoingonforalongtime,ithasprovedtobeamuchmoredi culttaskforparallelsystemsthanforsequentialsystems,forwhichabstractionplaysamajorroleinmostmodernsequentiallanguages.Onevibrantareaofresearchwhichhasariseninthelasteightyears,orso,istheideaofusingobject-orientedcodeasthebasisforparallelprogramming.Thishasspawnedalargenumberofdi erentlanguages,systemsandmethodologiesandhasprovedtractabletotheoreticalanalysis.Someoftheselanguagesimple-mentabstractionmechanismsverysimilartothetechniquesweemployindevelopingparallelcodeandwewouldliketodrawonthisexperienceinourendeavours.Wehavegatheredsomeoftheavailableliteratureandattemptedtolookforgeneralprinciplesinthiswork.Here,wepresentasummaryofthelanguagesdiscovered,29programminglanguagesplusanumberofoperatingsystemsandevenanabstractmachine.Wedonotprojecttherelevanceofthissurveyontoourintendedinvestigation,which,afterall,willbebasedonfunctionalabstractdatatypesratherthanpersistentobjectsbutwedrawsometentativeandgeneralconclusionsfromour ndings.2ConcurrentObject-OrientedProgramming2.1IntroductionInsequentiallanguages,theprocedureorfunctionisthebasicabstractionmechanism,codeanddatacanbecombinedandparameterisedinsuchawaythattheycanbereusedwithsuitableinstantiation.Thisdoesnotextendtoparallelprogramming,however,sinceitdoesnotadequatelydescribethecommunicationandsynchronisationrequiredbetweenconcurrentobjects[6].Theproblemwithparallelcomputationisthatahighdegreeofindeterminacyisintroducedbythefactthatdi erentsegmentsofaparallelcomputationcanbedistributedthroughoutspaceandareexecutedatindeterminatepointsintimerelativetooneanother[3].Theseissuesaretransparentinasequentialexecution.Oneconsequenceisthatpartiallyevaluatedsectionsofprogrammecoexistwhichgreatlycomplicatesthelocationandsynchronisationofthesesectionsandincreasestheriskofharmfulinterferencebetweenthem.Parallelprogrammingthusrequiresaneworderofabstractionmechanismwherebynotonlyarepro-grammeinstructionsanddataabstractedbutthelocationofdataandthepatternofcomputationareseparatelyabstractedandparameterised.Ideallythesetwoshouldbeindependentandorthogonaltoonean-other,inthesensethatdi erentpatternsofcomputationmayberequiredforthesamesequentialabstractionondi erentparallelarchitectures,however,thishasprovedanextremelydi cultgoaltoachieve.2ThisisoneofthestrengthsofapplyingObject-Orientedprogrammingtechniquestoparallelprogrammedevelopment.Themanagementofpotentiallyparallelprogrammeswherecommunicationandsynchronisa-tionarerequiredaresuccinctlymodelledbyobjectsinanobject-orientedenvironment.Theobjectsencap-sulatethecodeanddatasectionstobeexecutedinparallelandtheinteractionbetweenobjectscorrespondstotheevaluationstrategy.Thiscreatesahierarchicalviewoftheoverallprocessofspecifyinganddevelopingparallelprogrammes[6]:-1.Atthelowestlevelarethebasicconcurrencyprimitives.Theseinvolvecommunicationsprimitivessuchassendingmessagesandspecifying ltersforincomingmessages.Alsoincludedherearecomputationprimitivessuchasspecifyingconcurrentexecutioneitherremotelyorlocally.Thesewillbepresentinthelanguagespecifyinganobject-orientedsolutiontoaprogrammingproblembutwillalsobemappedthroughanintermediaterepresentation(ifoneisused)andwillmapontothenativelanguageofthetargethardware.2.Abovethislayerarethepatternsofcommunicationthatconnectobjectstogether.Thesecanbe,forinstance:-(a)Point-to-pointasintheremoteprocedurecall(RPC)methodology.Thisisasubsetofthegeneralmessagepassingconcept.(b)Patterndirectedinwhichgroupsofanonymousrecipientscanbeaddressed.Theactualpatternofmessagescanbeabstractedandde nedbythemessagetransmitter.(c)Constraint-basedwheremessagerecipientscan lteroutspeci cclassesofmessages.Thesecouldbetospecifyspeci corderingsofevents,forinstancereadingfromanemptybu er,whicharedi culttosetupinasynchronoussystems.3.Atthetoplevelisamodulardecomposition[6]whichisatop-levelabstractionlayerusedbythedesignertoseparatedesignconcernsfromimplementationissues.Fori
本文标题:A Survey of Concurrent Object-Oriented Programming
链接地址:https://www.777doc.com/doc-3785808 .html