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.

<strong>Hermes</strong>isanexperimentallanguagedevelopedatthe<strong>IBM</strong>TJWatson 1.1Introduction 1Introductionto<strong>Hermes</strong><br />

storedinthecomputerasanarray,alinkedlist,ahashtable,asplaytree, tableofname-addresspairs.Youdon'tworryaboutwhetherthistableis fromtheprogrammer<strong>and</strong>giveittothecompilerimplementor.<strong>Hermes</strong>is asimplelanguageforexpressingcomputation<strong>and</strong>programcomposition. The<strong>Hermes</strong>compilerchoosestheimplementationinsteadofyou.Forexample,ifyouwishtobuildalistofnames<strong>and</strong>addresses,youjustdeclarea<br />

ResearchCenter.Itreectsourresearchgroup'sopinionofhowcomplex<br />

oradiskle|thatisthecompiler'sjob.Insteadoftheapproximately120 systemsshouldbeprogrammed([BS89,SY83,PS83,SYB87c]).<br />

systemcallsinatypicalUNIX([KP84]),youhavejust10<strong>Hermes</strong>statementswhichdealwithcreatingprograms,connectingthemtogether,<strong>and</strong><br />

canbuildarbitrarysystems,includingsomewhichinUNIXwouldrequire machinelanguageisevenleaner!<strong>Hermes</strong>alsostressestheabilitytobuild munication,orcopingwithfailures.Withjustthesetenstatements,you superuserprivilegetobuild.<br />

Thebasicideabehind<strong>Hermes</strong>istotakeasmuchworkaspossibleaway<br />

communicatingbetweenthem.Youdon'tworryaboutdistribution,com-<br />

requireprogrammerstowritemoredocumentation,e.g.declarations<strong>and</strong> systemsoutofseparatelydeveloped,compiled,<strong>and</strong>testedmodules.We mismatches.Inexchangeformodularity<strong>and</strong>checkabilitywearewillingto checkingaspossibletodetectnonsensicalprograms<strong>and</strong>todetectinterface systemasitdidwhentestedinisolation.Wewantasmuchcompile-time shouldbehavethesamewhencombinedwithothermodulesintoalarger expectnon-interferencebetweenmodules|thismeansthatamodule Ofcourse,aleanlanguageisn'tallthat'srequired.Afterall,theTuring<br />

interfacedenitions.<br />

lelexecutionstatements(e.g.cobegin),semaphores,monitors,guardians, concurrent<strong>and</strong>distributedenvironments,youdonotneedtowriteparaltialcontrolstructures.Although<strong>Hermes</strong>isexplicitlydesignedtorunieratingsystemlikeUNIX,MS-DOS,orVMS.Willyouhavetocompletelguage.<strong>Hermes</strong>hasvariables,assignmentstatements,<strong>and</strong>theusualsequen-<br />

changeyourconceptofprogramming areusedtoprogramminginalanguagelikeC,Pascal,orAda,underanop-<br />

Notreally.Inmanyrespects,<strong>Hermes</strong>isatraditionalimperativelan-<br />

Howdoesthisaectyou,theprogrammerWeareassumingthatyou

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

Saved successfully!

Ooh no, something went wrong!