
doc.CoreASM-DesignDocumentation.pdf Maven / Gradle / Ivy
%PDF-1.4
%????
5 0 obj
<< /S /GoTo /D (chapter*.3) >>
endobj
8 0 obj
(License and Copyright Notice)
endobj
9 0 obj
<< /S /GoTo /D (chapter.1) >>
endobj
12 0 obj
(Introduction)
endobj
13 0 obj
<< /S /GoTo /D (section.1.1) >>
endobj
16 0 obj
(Towards a Comprehensive Framework)
endobj
17 0 obj
<< /S /GoTo /D (section.1.2) >>
endobj
20 0 obj
(The CoreASM Modeling Environment)
endobj
21 0 obj
<< /S /GoTo /D (section.1.3) >>
endobj
24 0 obj
(Related Work)
endobj
25 0 obj
<< /S /GoTo /D (chapter.2) >>
endobj
28 0 obj
(Abstract State Machines)
endobj
29 0 obj
<< /S /GoTo /D (section.2.1) >>
endobj
32 0 obj
(Basic ASMs)
endobj
33 0 obj
<< /S /GoTo /D (subsection.2.1.1) >>
endobj
36 0 obj
(Basic Definition)
endobj
37 0 obj
<< /S /GoTo /D (subsection.2.1.2) >>
endobj
40 0 obj
(State Transitions)
endobj
41 0 obj
<< /S /GoTo /D (subsection.2.1.3) >>
endobj
44 0 obj
(Transition Rules)
endobj
45 0 obj
<< /S /GoTo /D (subsection.2.1.4) >>
endobj
48 0 obj
(Interaction with Environment)
endobj
49 0 obj
<< /S /GoTo /D (section.2.2) >>
endobj
52 0 obj
(Multi-Agent ASMs)
endobj
53 0 obj
<< /S /GoTo /D (section.2.3) >>
endobj
56 0 obj
(Control State ASMs)
endobj
57 0 obj
<< /S /GoTo /D (section.2.4) >>
endobj
60 0 obj
(The Railroad Crossing Example)
endobj
61 0 obj
<< /S /GoTo /D (subsection.2.4.1) >>
endobj
64 0 obj
(The Abstract Model)
endobj
65 0 obj
<< /S /GoTo /D (subsection.2.4.2) >>
endobj
68 0 obj
(The Executable Model)
endobj
69 0 obj
<< /S /GoTo /D (chapter.3) >>
endobj
72 0 obj
(CoreASM: Architectural Overview)
endobj
73 0 obj
<< /S /GoTo /D (section.3.1) >>
endobj
76 0 obj
(CoreASM Components)
endobj
77 0 obj
<< /S /GoTo /D (section.3.2) >>
endobj
80 0 obj
(Engine Lifecycle)
endobj
81 0 obj
<< /S /GoTo /D (subsection.3.2.1) >>
endobj
84 0 obj
(Engine Initialization)
endobj
85 0 obj
<< /S /GoTo /D (subsection.3.2.2) >>
endobj
88 0 obj
(Loading Specification)
endobj
89 0 obj
<< /S /GoTo /D (subsection.3.2.3) >>
endobj
92 0 obj
(Execution of Specification)
endobj
93 0 obj
<< /S /GoTo /D (subsection.3.2.4) >>
endobj
96 0 obj
(Concurrently Running Agents)
endobj
97 0 obj
<< /S /GoTo /D (section.3.3) >>
endobj
100 0 obj
(CoreASM Plugins)
endobj
101 0 obj
<< /S /GoTo /D (chapter.4) >>
endobj
104 0 obj
(CoreASM: The Kernel)
endobj
105 0 obj
<< /S /GoTo /D (section.4.1) >>
endobj
108 0 obj
(The Abstract Storage)
endobj
109 0 obj
<< /S /GoTo /D (section.4.2) >>
endobj
112 0 obj
(The Interpreter)
endobj
113 0 obj
<< /S /GoTo /D (subsection.4.2.1) >>
endobj
116 0 obj
(Notation)
endobj
117 0 obj
<< /S /GoTo /D (subsection.4.2.2) >>
endobj
120 0 obj
(Kernel Expression Interpreter)
endobj
121 0 obj
<< /S /GoTo /D (subsection.4.2.3) >>
endobj
124 0 obj
(Kernel Rule Interpreter)
endobj
125 0 obj
<< /S /GoTo /D (subsection.4.2.4) >>
endobj
128 0 obj
(Operators)
endobj
129 0 obj
<< /S /GoTo /D (section.4.3) >>
endobj
132 0 obj
(Rules and Updates)
endobj
133 0 obj
<< /S /GoTo /D (subsection.4.3.1) >>
endobj
136 0 obj
(Update Instruction Notation)
endobj
137 0 obj
<< /S /GoTo /D (subsection.4.3.2) >>
endobj
140 0 obj
(Aggregation of Updates)
endobj
141 0 obj
<< /S /GoTo /D (subsection.4.3.3) >>
endobj
144 0 obj
(Composition of Updates)
endobj
145 0 obj
<< /S /GoTo /D (section.4.4) >>
endobj
148 0 obj
(The Parser)
endobj
149 0 obj
<< /S /GoTo /D (section.4.5) >>
endobj
152 0 obj
(The Plugin Framework)
endobj
153 0 obj
<< /S /GoTo /D (subsection.4.5.1) >>
endobj
156 0 obj
(Parser Extensions)
endobj
157 0 obj
<< /S /GoTo /D (subsection.4.5.2) >>
endobj
160 0 obj
(Interpreter Extensions)
endobj
161 0 obj
<< /S /GoTo /D (subsection.4.5.3) >>
endobj
164 0 obj
(Abstract Storage Extensions)
endobj
165 0 obj
<< /S /GoTo /D (subsection.4.5.4) >>
endobj
168 0 obj
(Scheduler Extensions)
endobj
169 0 obj
<< /S /GoTo /D (subsection.4.5.5) >>
endobj
172 0 obj
(Extension Point Plugins)
endobj
173 0 obj
<< /S /GoTo /D (subsection.4.5.6) >>
endobj
176 0 obj
(Plugin Service Interface)
endobj
177 0 obj
<< /S /GoTo /D (subsection.4.5.7) >>
endobj
180 0 obj
(Plugin Background)
endobj
181 0 obj
<< /S /GoTo /D (chapter.5) >>
endobj
184 0 obj
(CoreASM: The Plugins)
endobj
185 0 obj
<< /S /GoTo /D (section.5.1) >>
endobj
188 0 obj
(Standard Rule Constructs)
endobj
189 0 obj
<< /S /GoTo /D (subsection.5.1.1) >>
endobj
192 0 obj
(Block Rule Plugin)
endobj
193 0 obj
<< /S /GoTo /D (subsection.5.1.2) >>
endobj
196 0 obj
(Conditional Rule Plugin)
endobj
197 0 obj
<< /S /GoTo /D (subsection.5.1.3) >>
endobj
200 0 obj
(The let-rule Plugin)
endobj
201 0 obj
<< /S /GoTo /D (subsection.5.1.4) >>
endobj
204 0 obj
(The extend-rule Plugin)
endobj
205 0 obj
<< /S /GoTo /D (subsection.5.1.5) >>
endobj
208 0 obj
(The choose-rule Plugin)
endobj
209 0 obj
<< /S /GoTo /D (subsection.5.1.6) >>
endobj
212 0 obj
(The forall-rule Plugin)
endobj
213 0 obj
<< /S /GoTo /D (subsection.5.1.7) >>
endobj
216 0 obj
(The case-rule Plugin)
endobj
217 0 obj
<< /S /GoTo /D (subsection.5.1.8) >>
endobj
220 0 obj
(The TurboASM Plugin)
endobj
221 0 obj
<< /S /GoTo /D (section.5.2) >>
endobj
224 0 obj
(Primitive Data Types)
endobj
225 0 obj
<< /S /GoTo /D (subsection.5.2.1) >>
endobj
228 0 obj
(The Predicate Logic Plugin)
endobj
229 0 obj
<< /S /GoTo /D (subsection.5.2.2) >>
endobj
232 0 obj
(The Number Plugin)
endobj
233 0 obj
<< /S /GoTo /D (subsection.5.2.3) >>
endobj
236 0 obj
(The String Plugin)
endobj
237 0 obj
<< /S /GoTo /D (section.5.3) >>
endobj
240 0 obj
(Collections)
endobj
241 0 obj
<< /S /GoTo /D (subsection.5.3.1) >>
endobj
244 0 obj
(The Collection Plugin)
endobj
245 0 obj
<< /S /GoTo /D (subsection.5.3.2) >>
endobj
248 0 obj
(The Set Plugin)
endobj
249 0 obj
<< /S /GoTo /D (subsection.5.3.3) >>
endobj
252 0 obj
(The Bag Plugin)
endobj
253 0 obj
<< /S /GoTo /D (subsection.5.3.4) >>
endobj
256 0 obj
(The List Plugin)
endobj
257 0 obj
<< /S /GoTo /D (subsection.5.3.5) >>
endobj
260 0 obj
(The Queue Plugin)
endobj
261 0 obj
<< /S /GoTo /D (subsection.5.3.6) >>
endobj
264 0 obj
(The Stack Plugin)
endobj
265 0 obj
<< /S /GoTo /D (subsection.5.3.7) >>
endobj
268 0 obj
(The Map Plugin)
endobj
269 0 obj
<< /S /GoTo /D (section.5.4) >>
endobj
272 0 obj
(Auxiliary Plugins)
endobj
273 0 obj
<< /S /GoTo /D (subsection.5.4.1) >>
endobj
276 0 obj
(The Signature Plugin)
endobj
277 0 obj
<< /S /GoTo /D (subsection.5.4.2) >>
endobj
280 0 obj
(The Scheduling Policies Plugin)
endobj
281 0 obj
<< /S /GoTo /D (subsection.5.4.3) >>
endobj
284 0 obj
(IO Plugin)
endobj
285 0 obj
<< /S /GoTo /D (subsection.5.4.4) >>
endobj
288 0 obj
(Step Plugin)
endobj
289 0 obj
<< /S /GoTo /D (subsection.5.4.5) >>
endobj
292 0 obj
(The Observer Plugin)
endobj
293 0 obj
<< /S /GoTo /D (subsection.5.4.6) >>
endobj
296 0 obj
(Math Plugin)
endobj
297 0 obj
<< /S /GoTo /D (subsection.5.4.7) >>
endobj
300 0 obj
(The Time Plugin)
endobj
301 0 obj
<< /S /GoTo /D (section.5.5) >>
endobj
304 0 obj
(The JASMine Plugin)
endobj
305 0 obj
<< /S /GoTo /D (subsection.5.5.1) >>
endobj
308 0 obj
(Requirements and Limitations)
endobj
309 0 obj
<< /S /GoTo /D (subsection.5.5.2) >>
endobj
312 0 obj
(Language Extensions)
endobj
313 0 obj
<< /S /GoTo /D (subsection.5.5.3) >>
endobj
316 0 obj
(Implementing JASMine)
endobj
317 0 obj
<< /S /GoTo /D (subsection.5.5.4) >>
endobj
320 0 obj
(A Simple Example)
endobj
321 0 obj
<< /S /GoTo /D (subsection.5.5.5) >>
endobj
324 0 obj
(Final Remarks)
endobj
325 0 obj
<< /S /GoTo /D (chapter.6) >>
endobj
328 0 obj
(Implementing CoreASM)
endobj
329 0 obj
<< /S /GoTo /D (section.6.1) >>
endobj
332 0 obj
(The Architecture)
endobj
333 0 obj
<< /S /GoTo /D (section.6.2) >>
endobj
336 0 obj
(The CoreASM Engine)
endobj
337 0 obj
<< /S /GoTo /D (subsection.6.2.1) >>
endobj
340 0 obj
(The Kernel)
endobj
341 0 obj
<< /S /GoTo /D (subsection.6.2.2) >>
endobj
344 0 obj
(CoreASM Plugins)
endobj
345 0 obj
<< /S /GoTo /D (section.6.3) >>
endobj
348 0 obj
(User Interfaces and Tools)
endobj
349 0 obj
<< /S /GoTo /D (subsection.6.3.1) >>
endobj
352 0 obj
(CSDe)
endobj
353 0 obj
<< /S /GoTo /D (subsection.6.3.2) >>
endobj
356 0 obj
(Model Checking CoreASM Specifications)
endobj
357 0 obj
<< /S /GoTo /D (chapter.7) >>
endobj
360 0 obj
(Conclusions and Perspectives)
endobj
361 0 obj
<< /S /GoTo /D (section.7.1) >>
endobj
364 0 obj
(Significance of the Contribution)
endobj
365 0 obj
<< /S /GoTo /D (section.7.2) >>
endobj
368 0 obj
(Future Work)
endobj
369 0 obj
<< /S /GoTo /D (appendix.A) >>
endobj
372 0 obj
(Supplementary Definitions)
endobj
373 0 obj
<< /S /GoTo /D (section.A.1) >>
endobj
376 0 obj
(Abstract Storage)
endobj
377 0 obj
<< /S /GoTo /D (section.A.2) >>
endobj
380 0 obj
(Interpreter)
endobj
381 0 obj
<< /S /GoTo /D (section.A.3) >>
endobj
384 0 obj
(Scheduler)
endobj
385 0 obj
<< /S /GoTo /D (section.A.4) >>
endobj
388 0 obj
(Control API)
endobj
389 0 obj
<< /S /GoTo /D (section.A.5) >>
endobj
392 0 obj
(Plugins)
endobj
393 0 obj
<< /S /GoTo /D (subsection.A.5.1) >>
endobj
396 0 obj
(Choose Rule Plugin)
endobj
397 0 obj
<< /S /GoTo /D (subsection.A.5.2) >>
endobj
400 0 obj
(Forall Rule Plugin)
endobj
401 0 obj
<< /S /GoTo /D (subsection.A.5.3) >>
endobj
404 0 obj
(Predicate Logic Plugin)
endobj
405 0 obj
<< /S /GoTo /D (subsection.A.5.4) >>
endobj
408 0 obj
(Set Plugin)
endobj
409 0 obj
<< /S /GoTo /D (subsection.A.5.5) >>
endobj
412 0 obj
(Math Plugin)
endobj
413 0 obj
<< /S /GoTo /D (appendix.B) >>
endobj
416 0 obj
(CoreASM Examples)
endobj
417 0 obj
<< /S /GoTo /D (section.B.1) >>
endobj
420 0 obj
(The Railroad Crossing Example)
endobj
421 0 obj
<< /S /GoTo /D (section.B.2) >>
endobj
424 0 obj
(The Surveillance Scenario)
endobj
425 0 obj
<< /S /GoTo /D (appendix.C) >>
endobj
428 0 obj
(Change List)
endobj
429 0 obj
<< /S /GoTo /D (appendix*.96) >>
endobj
432 0 obj
(Index)
endobj
433 0 obj
<< /S /GoTo /D [434 0 R /Fit ] >>
endobj
438 0 obj <<
/Length 999
/Filter /FlateDecode
>>
stream
x?}UMs?6??W??!gD?$r?c+?t?3[?%遢 -Ej@ʊ?C?z\ЖT''??b??۷K?l??]???W?~`E?)њ?d?NX??.L?dI(K??Kzk{?i?\P?V?
7??,?:???J????uѤ[???C??t???f.??@?i?\???:ɹ$??????????R????v??ևר?v?Z{?cs??>?2 ?DH̓/???,?????@|?J@?{ ???G%??#?F??@w??W????3!?%?T???ml?^?
??+0F?R#???d2TB???Ƌ???W?
???CVB???f??Wh?Bϐ?gJ
]B ???ص?? kG:????ٻ?j?`D??㭯??[??((V?]?K????]U?3??5>?,)?)?H?VD(?@?DD7lߊ?8Ή??f}SF????ƻ?ծ???1?M??,y??!Fs=f?þ ?`?z?>?2>{?ن͘y"
QZ&???U??P?9ڋ?????z#4??b??S?P6yX$&??)???m?ۇ????[??
e!q?N??#?(???%1?;A??p?-??G??nTz}??)AO?˪?+?v???>P?&J`7??A+ж??.ca????$???M???R?M???!??'?
?[?b?m?m?0??G??m\?9????ڍ=~?:?7????"?ۮ???Hؓ?];?WD}?$z)Ǫ"?u????ż?O(g<{հ?)8&Q5?=B?x???[??,???`w=9?D?%/K?~ܒ[?????3)e??v0&d&?8G??@?#?O?{
??:?mfx????jyyzS?ժ????O?{?WA?`?P??ali??i&?|T???:??=?O?????z@?؇m???????U?????@t>?ݰE????
??U??u?c????c?J#?9?E????}vmm????tg?S?TZ?nvf(?O8'?]?o?(;?b??5C$??W???W??B??/4B?8????
endstream
endobj
434 0 obj <<
/Type /Page
/Contents 438 0 R
/Resources 437 0 R
/MediaBox [0 0 612 792]
/Parent 451 0 R
/Annots [ 435 0 R 436 0 R 450 0 R ]
>> endobj
435 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [254.088 321.047 348.36 330.843]
/Subtype/Link/A<>
>> endobj
436 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [186.418 253.269 486.882 264.117]
/Subtype/Link/A<>
>> endobj
450 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [123.369 241.314 390.528 252.162]
/Subtype/Link/A<>
>> endobj
439 0 obj <<
/D [434 0 R /XYZ 104.28 708.695 null]
>> endobj
440 0 obj <<
/D [434 0 R /XYZ 104.28 683.788 null]
>> endobj
437 0 obj <<
/Font << /F17 441 0 R /F18 442 0 R /F19 443 0 R /F15 444 0 R /F41 445 0 R /F42 446 0 R /F21 447 0 R /F14 448 0 R /F43 449 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
454 0 obj <<
/Length 762
/Filter /FlateDecode
>>
stream
xڍUKo?0??Wp4R ?c?&i???n{?zp????+?I/??{?fS?R/k??3???&A$??Y??????6K??,+?`?iF?rV?9-?]? Wu?(fe??(?ns?R???????-???URQ?"?i?4??2.i?Iv?4a?XBaZ??Sig?????hj??
?t?Ҋ읨????8ȥW?O??^;?????7??j?ǝ ??V?杈lWІk N?Y?]??!؆?9Q?=3?^?a?'%?v?????;?x ????j|?4껜k1?R>?z???J?s5un*2q???l?}?]g,kA?As??J ??)?nrl?k?}?
????
??=F1wKo?{FE#M??j6???c̴Uw(N???R̍w??8j5??w???{nz???b7??Ťl??mပP??????v?|-?Á?"L?6??dp????C9m̓??|??????j/_??U?c?x?'???x???V?|????^;??(م%#vB,K?W?k/?$???m?l?0???bĈ?qs?Z?!ph?Fl?Ԩ??W??c+D??]?}?)???K-?????A??C?^q>}?>HM8
?TԒ?㳷?|????)???Z???fWB???2?ePZ?]??xⓌޠ?via\???H????'tE?v?v?06??#)
?s?E???_????|??&2??_?Б??{b??????`d?y?^?܁x .5Hh?5?6R??????Ъ?)?=d4??9Ç?+????ô?]
endstream
endobj
453 0 obj <<
/Type /Page
/Contents 454 0 R
/Resources 452 0 R
/MediaBox [0 0 612 792]
/Parent 451 0 R
>> endobj
455 0 obj <<
/D [453 0 R /XYZ 104.28 521.464 null]
>> endobj
456 0 obj <<
/D [453 0 R /XYZ 104.28 452.67 null]
>> endobj
452 0 obj <<
/Font << /F42 446 0 R /F15 444 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
460 0 obj <<
/Length 494
/Filter /FlateDecode
>>
stream
xڍS???0??,) ?xK?.??-uI
Y?-b?䂢m??3?d
?H?9??f?͈?#??ˎf???U??#N??\??iRmCmQ7???&?LE)j?{;&?{-?7o?s!8)????_???u6[=2?%-mY,&ќ?j?6??ɬ??Ȅ?$???3n?y ?o KA?@??O?TFޕf?(????)Uн??FB?є?S荝??^?[??<%????????? f#? ???*?w?Y? ?Nі=%??T?
3?????!??%???K&`?MA_???O?x$??zyqv???????ٟ?q?|r6???/ӟ ?i???p +g?)?&uSojf! ݔ?Y??إ?.f?f??C?}J?CʆـK
?R?6?ń
??qp???4Wc?????!_$%??? ??=ޥ?w????i?D?:?Cx}???O??Cғ8?rSK????H????v?8???W??=0???????^?q???~L?0
endstream
endobj
459 0 obj <<
/Type /Page
/Contents 460 0 R
/Resources 458 0 R
/MediaBox [0 0 612 792]
/Parent 451 0 R
/Annots [ 457 0 R ]
>> endobj
457 0 obj <<
/Type /Annot
/Border[0 0 0]/H/I/C[0 1 1]
/Rect [154.724 460.193 455.528 472.186]
/Subtype/Link/A<>
>> endobj
461 0 obj <<
/D [459 0 R /XYZ 104.28 708.695 null]
>> endobj
6 0 obj <<
/D [459 0 R /XYZ 104.28 554.241 null]
>> endobj
458 0 obj <<
/Font << /F42 446 0 R /F15 444 0 R /F14 448 0 R /F55 462 0 R /F56 463 0 R >>
/ProcSet [ /PDF /Text ]
>> endobj
466 0 obj <<
/Length 2372
/Filter /FlateDecode
>>
stream
xڍYK?۸??W蔢?F\??r?M?ԦʗxnI#!K?
@?X????(J??\F@??l???&?w???????O?l????l???K??]Yeq?5??n?????9?N?=????iLq?4)?'?C???Y???CVG??/ڛnț"?W????I??!??}?`??Ñ?=?N??????g???&??q??@??/??'???ԅ0??g??>?Ҩe??"?Mv@?J?h?^uk{;??0????̽Ff?Ѩu?????TGf;?/M?خ??'}4??U???7?,L?`m??(?.?????c???u
?vu???ѝuo??k??lg?߀??o????h?:?̀??_?1??m???[Zg'??~?d?:.g,??ҵh??෯8p?7?L?h?
???U??????a?
:"?ȿ*#?????0lC(?eP??N'??i?????0??t?JT1=R??~/??q?x????%?;?@_B3?F?r`