28.01.2015 Views

Hermes: A Tutorial and Reference Manual - Researcher - IBM

Hermes: A Tutorial and Reference Manual - Researcher - IBM

Hermes: A Tutorial and Reference Manual - Researcher - IBM

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

5ResearchDirectionsin<strong>Hermes</strong><br />

buildotherprograms,butunlikeLISP,<strong>Hermes</strong>willchecktheseprograms cesscontrol([NS88,Str86]).LikeLISP,<strong>Hermes</strong>allowsrunningprogramsto unlikeobject-orientedlanguages,thereissupportforconcurrency<strong>and</strong>ac-<br />

languages,<strong>Hermes</strong>supportsinformationhiding<strong>and</strong>programreuse|but opment.Itcombinesexpressivepower,simplicity,portability,<strong>and</strong>safety, in<strong>Hermes</strong>. mergingthebestfeaturesofmanylanguageparadigms:Likeobject-oriented Ifyouhavefollowedtheexamplessofar,youshouldbereasonablyuent<br />

fortypeerrorsbeforeexecution.LikeAda<strong>and</strong>Modula,<strong>Hermes</strong>supports modularity<strong>and</strong>interfacespecication,butunliketheselanguages,<strong>Hermes</strong> Webelievethat<strong>Hermes</strong>isanexcellenttechnologyforlargesystemdevel-<br />

machine-independentsetofprimitivestodoit.And<strong>Hermes</strong>providesthe providescompletesecurityusingtypestatechecking.LikeC/UNIX,<strong>Hermes</strong>supportssystemsprogramming,butusesasimpler<strong>and</strong>completelplorenewerapproachestosimplifyingthedevelopmentofcomplexsystems:<br />

Asof1990,the<strong>Hermes</strong>projectat<strong>IBM</strong>Researchisusing<strong>Hermes</strong>toex-<br />

Amorerenedsemilatticestructure,whichallowsprogrammersto familiarsequentialprogrammingparadigmoftheimperativelanguages.<br />

Optimistictransformations,whichperformconcurrencycontrol([Jef85]), Transparentrecovery,whichmakesitunnecessaryforprogrammers FBSY87,SYB87d]). totreatprocessstateasvolatile<strong>and</strong>dotheirowncheckpointing <strong>and</strong>restart([SY85,SY84,YSB87,SBY88,SBY87,SYB87c,SYB88, allowadditionalcoercions([SY89,SY90]). trackmoreinformationaboutthevalueofvariables,<strong>and</strong>whichwould<br />

implementationsonparallel<strong>and</strong>distributedarchitectures. clientscodedasasingleserialprocess,aretransformedintoecient perciallyinecientprograms,suchasaserverwiththous<strong>and</strong>sof tocodethesecomplexprotocolsbyh<strong>and</strong>.Straightforwardbutsutiontransparently([SY87]).Suchoptimizationsmakeitunnecessary<br />

processreplication([GJ87]),call-streaming([BS90]),<strong>and</strong>paralleliza-

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!