Hermes: A Tutorial and Reference Manual - Researcher - IBM
Hermes: A Tutorial and Reference Manual - Researcher - IBM
Hermes: A Tutorial and Reference Manual - Researcher - IBM
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