- Page 1 and 2:
DavidF.BaconArthurP.GoldbergAndyLow
- Page 3 and 4:
Preface Thisdocumentcontainsatutori
- Page 5 and 6:
iv3TypeandTypestateChecking 5Resear
- Page 8:
Tutorial PartI 1
- Page 11 and 12:
ortransactions.AHermesmoduleisastra
- Page 13 and 14:
61.2.GettingStarted|ASimpleHermesPr
- Page 15 and 16:
81.2.GettingStarted|ASimpleHermesPr
- Page 17 and 18:
101.2.GettingStarted|ASimpleHermesP
- Page 19 and 20:
121.4.PuttingProcessesTogether thec
- Page 21 and 22:
141.4.PuttingProcessesTogether newI
- Page 23 and 24:
fullycheckedfortypeandtypestateerro
- Page 25 and 26:
constructs:thenewinput-port,connect
- Page 27 and 28:
201.5.DeclarationsandDenitions whil
- Page 29 and 30:
221.5.DeclarationsandDenitions Stan
- Page 31 and 32:
whichtheoutputportconnects|calledth
- Page 33 and 34:
261.6.ASimpleServer begin QuitCM:Qu
- Page 35 and 36:
281.6.ASimpleServer towritedataabst
- Page 37 and 38:
toaservice,whileretainingtheability
- Page 39 and 40:
322.1.Requirements PutLine PutLine
- Page 41 and 42:
342.3.Interfaces WMInterface:callme
- Page 43 and 44:
asmallchangetotheinterfaceFilter.Re
- Page 45 and 46:
382.5.Front-endProcess callParms.Ge
- Page 47 and 48:
402.5.Front-endProcess paringavalue
- Page 49 and 50:
ationtable[expr].Wehaveencounteredt
- Page 51 and 52:
ishiddenandinnowayaectsthesemantics
- Page 53 and 54:
462.7.TheWindowManager callCurrentW
- Page 55 and 56:
name.Ifwewaitedtobuildtheapplicatio
- Page 57 and 58:
502.8.CreatingaWindowApplication re
- Page 59 and 60:
522.8.CreatingaWindowApplication be
- Page 61 and 62:
examplesillustratedhere. errorhandl
- Page 63 and 64:
563.TypeandTypestateChecking anerro
- Page 65 and 66:
583.TypeandTypestateChecking Therei
- Page 67 and 68:
604.1.ExpressionBlocks anexpression
- Page 69 and 70:
624.3.Variants thevariantcomponents
- Page 71 and 72:
thetypestate(i.e.addattributes),but
- Page 73 and 74:
accesscontrol{anyonecangetit. 664.4
- Page 75 and 76:
685.ResearchDirectionsinHermes
- Page 78 and 79:
6Introduction Thereferencemanualpre
- Page 80 and 81:
7LexicalandSyntacticRules lectionso
- Page 82 and 83:
8Resolution name,attributename,exce
- Page 84 and 85:
8.1.2ComponentNames eachhaveacompon
- Page 86 and 87:
onthehandlerandusedontheexitstateme
- Page 88 and 89:
theelementwillalsobeknownbyapplying
- Page 90 and 91:
documentationpurposesevenwheretheya
- Page 92 and 93: ments.Therstargumenttocasemustbeava
- Page 94 and 95: Ifinit(CM)ispresentandCMisacallmess
- Page 96 and 97: 6.Determinethepostconditionsforeach
- Page 98 and 99: droppedattributesafternormalcomplet
- Page 100 and 101: 11 HermesOperations Throughoutthere
- Page 102 and 103: Thediscardstatementremovesthevaluef
- Page 104 and 105: Ifnoneoftheclausescanexitsnormally,
- Page 106 and 107: Ifthereisanoptionalselectexpression
- Page 108 and 109: stmemberisanatomwithprintnamematchi
- Page 110 and 111: types.Additionally,theoperations\an
- Page 112 and 113: Less,Less-equal,Greater,Greater-equ
- Page 114 and 115: RecordTypeFamily 11.5RecordOperatio
- Page 116 and 117: valueofthetable,ifany,isdiscarded.
- Page 118 and 119: thetableisordered,theelementisinser
- Page 120 and 121: notallowedonconstantcopies.Avariabl
- Page 122 and 123: thereisnoselectedelement,aNotFounde
- Page 124 and 125: willbeuninitialized,andthedestinati
- Page 126 and 127: Itistheabilityforprogramstosendandr
- Page 128 and 129: Connect Theconnectstatementhastwoop
- Page 130 and 131: possible,andstoresitinadestinationv
- Page 132 and 133: incompatiblewiththeinputporttypeoft
- Page 134 and 135: Inspect-polymorph willincludefinit(
- Page 136 and 137: theprogramwhichembedsit.Thereforeth
- Page 138 and 139: type).Ifthecheckfails,theexceptionD
- Page 140 and 141: isusuallygeneratedasacoercionwhenme
- Page 144 and 145: accuracy against andy assert drop e
- Page 146 and 147: Thesimplestatements: simple{stateme
- Page 148 and 149: oolean{guard event{guard::=eventinp
- Page 150 and 151: ::=(expression)AppendixA.HermesConc
- Page 152 and 153: user{exception constant{parameters
- Page 154 and 155: formal{variable module{name::=ident
- Page 156 and 157: Typestatesappearinginparticularcont
- Page 158 and 159: destination,source,andposition.Some
- Page 160 and 161: operandwillnolongerbeinitialized. B
- Page 162 and 163: Followingaretheinferencefunctionsap
- Page 164 and 165: lowestentrycondition(message,port):
- Page 166 and 167: copy(source,destination):Foreachatt
- Page 168 and 169: assert(continued) Description:Evalu
- Page 170 and 171: case(continued) Description:Copythe
- Page 172 and 173: copy(continued) Preconditions: unco
- Page 174 and 175: drop(continued) SpecialRules:Thenum
- Page 176 and 177: exists(continued) SpecialRules:Thes
- Page 178 and 179: forall(continued) Description:Ifeve
- Page 180 and 181: greater(continued) Description:Ifso
- Page 182 and 183: insert{at(table,element,position) T
- Page 184 and 185: integer{literal(result) TypeRules:
- Page 186 and 187: merge{at(continued) Description:Rem
- Page 188 and 189: not(result,source) TypeRules: Appen
- Page 190 and 191: print(variable) TypeRules:None Prec
- Page 192 and 193:
emove(element,table) TypeRules: App
- Page 194 and 195:
select(continued) SpecialRules:Allt
- Page 196 and 197:
subtract(result,source1,source2) Ty
- Page 198 and 199:
unary{minus(result,source) TypeRule
- Page 200 and 201:
wrap(continued) Preconditions: var(
- Page 202 and 203:
definitions predefined:using() Appe
- Page 204 and 205:
);'named'->typename:typenameffullg
- Page 206 and 207:
{{Specicinformationneededtocomplete
- Page 208 and 209:
attrdefinition:record( attributeid:
- Page 210 and 211:
statement:record( id:statementid, o
- Page 212 and 213:
{{Ablockstatementqualieridentiesthe
- Page 214 and 215:
{{expressionisfalse. ifqualifier:re
- Page 216 and 217:
{{expression.The'element'rootvariab
- Page 218 and 219:
[ASU88]AlfredV.Aho,RaviSethi,andJer
- Page 220 and 221:
[SYB87a]RobertE.Strom,ShaulaAlexand
- Page 222 and 223:
AppendixC.PredenedModule215 coercio
- Page 224 and 225:
AppendixC.PredenedModule217 dening,
- Page 226:
variablename discarded,29 variant,6