- 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: 685.ResearchDirectionsinHermes
- Page 79 and 80: 726.Introduction Conversionandresol
- Page 81 and 82: Punctuationconsistofoneortwocharact
- Page 83 and 84: 768.1.VariableNames 8.1.1BaseVariab
- Page 85 and 86: 788.2.TypeNames withinthespeciedmod
- Page 87 and 88: isconcerned.Allthe\noisewords",like
- Page 89 and 90: 829.TypeCheckingandInference block
- Page 91 and 92: Typestatecheckingassignsatypestatet
- Page 93 and 94: eforebeinginsertedintoatableoftypeT
- Page 95 and 96: it.Avariableisconstantataparticular
- Page 97 and 98: thecompilertoforgetthattheprogramva
- Page 99 and 100: 9210.9.TypestateErrors Cannotcoerce
- Page 101 and 102: Copy 9411.1.UbiquitousOperations Th
- Page 103 and 104: 9611.2.TheDepletionException 11.3Co
- Page 105 and 106: sionisthemeetofthetypestatebeforeex
- Page 107 and 108: inport2,thethirdclausewillexecute;i
- Page 109 and 110: 10211.4.ScalarOperations eration.Yo
- Page 111 and 112: 10411.4.ScalarOperations Integer,Re
- Page 113 and 114: 10611.4.ScalarOperations For-enumer
- Page 115 and 116: strings,arrays,lists,andrelations.
- Page 117 and 118: 11011.6.TableOperations ashorthandf
- Page 119 and 120: isdiscarded. Merge,Merge-At 11211.6
- Page 121 and 122: assumingitcanexitnormally.Thetypest
- Page 123 and 124: 11611.7.VariantOperations sexpressi
- Page 125 and 126: InputPort,OutputPort,CallmessageTyp
- Page 127 and 128:
12011.8.ProcessCreationandCommunica
- Page 129 and 130:
12211.8.ProcessCreationandCommunica
- Page 131 and 132:
12411.8.ProcessCreationandCommunica
- Page 133 and 134:
12611.9.PolymorphOperations positiv
- Page 135 and 136:
12811.9.PolymorphOperations Thevalu
- Page 137 and 138:
13011.10.ProgramOperations where(pa
- Page 139 and 140:
13211.11.Constraints ConstraintDeni
- Page 141 and 142:
familiarBNF(Backus-NaurForm).Thefol
- Page 143 and 144:
136A.1.LexicalRules digitisanyofthe
- Page 145 and 146:
follows. modules)otherprocessmodule
- Page 147 and 148:
140A.2.SyntacticRules compound{stat
- Page 149 and 150:
142A.2.SyntacticRules term factor::
- Page 151 and 152:
144A.2.SyntacticRules Typeconstruct
- Page 153 and 154:
146A.2.SyntacticRules call{argument
- Page 155 and 156:
148A.2.SyntacticRules variant{compo
- Page 157 and 158:
AppendixB HermesOperations Thischap
- Page 159 and 160:
152B.1.OperationDescriptions infert
- Page 161 and 162:
154B.2.TypeClasses boolean nominal
- Page 163 and 164:
156B.4.PreconditionFunctions operan
- Page 165 and 166:
158B.4.PreconditionFunctions B.4.3C
- Page 167 and 168:
Followingarethedetaileddescriptions
- Page 169 and 170:
162B.6.OperationDescriptions call(.
- Page 171 and 172:
164B.6.OperationDescriptions concat
- Page 173 and 174:
166B.6.OperationDescriptions discar
- Page 175 and 176:
168B.6.OperationDescriptions every(
- Page 177 and 178:
170B.6.OperationDescriptions expres
- Page 179 and 180:
172B.6.OperationDescriptions for{in
- Page 181 and 182:
174B.6.OperationDescriptions if(con
- Page 183 and 184:
176B.6.OperationDescriptions inspec
- Page 185 and 186:
178B.6.OperationDescriptions merge(
- Page 187 and 188:
180B.6.OperationDescriptions multip
- Page 189 and 190:
182B.6.OperationDescriptions positi
- Page 191 and 192:
184B.6.OperationDescriptions real{l
- Page 193 and 194:
186B.6.OperationDescriptions return
- Page 195 and 196:
188B.6.OperationDescriptions send(c
- Page 197 and 198:
190B.6.OperationDescriptions type(r
- Page 199 and 200:
192B.6.OperationDescriptions unwrap
- Page 201 and 202:
AppendixC PredenedModule Thisappend
- Page 203 and 204:
196AppendixC.PredenedModule program
- Page 205 and 206:
typedefinition:record( {{callmessag
- Page 207 and 208:
{{Anemptysetindicatestheentireeleme
- Page 209 and 210:
202AppendixC.PredenedModule );mains
- Page 211 and 212:
204AppendixC.PredenedModule 'inspec
- Page 213 and 214:
206AppendixC.PredenedModule ); {{He
- Page 215 and 216:
selectqualifier:record( {{guardsare
- Page 217 and 218:
{{attribute. typestate:tableofattri
- Page 219 and 220:
212C.1.References [SBY88]RobertE.St
- Page 221 and 222:
Index --,73 :=,94
- Page 223 and 224:
216C.1.References guardedselect,26
- Page 225 and 226:
218C.1.References ofelementvariable