𝔖 Scriptorium
✦   LIBER   ✦

πŸ“

A machine-checked, type-safe model of Java concurrency

✍ Scribed by Andreas Lochbihler


Publisher
KIT Scientific Publishing
Year
2012
Tongue
English
Leaves
440
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Table of Contents


Introduction......Page 27
Java concurrency......Page 28
Historical overview......Page 33
Contributions......Page 34
Isabelle/HOL......Page 39
Notation......Page 40
Locales......Page 43
Induction and coinduction......Page 45
Source code......Page 49
Abstract syntax......Page 50
Type system......Page 55
Native methods......Page 60
Well-formedness......Page 61
Dynamic semantics......Page 63
Type safety......Page 68
The JinjaThreads virtual machine......Page 69
The bytecode language......Page 70
Semantics......Page 72
Well-typings......Page 76
Type safety......Page 80
Comparison with Jinja, Bali, and muJava......Page 81
Interleaving semantics......Page 85
Framework for interleaving semantics......Page 86
The multithreaded state......Page 87
Thread actions......Page 92
Interleaving semantics......Page 101
Infrastructure for well-formedness constraints......Page 104
Native methods for synchronisation......Page 108
Source code......Page 117
Bytecode......Page 122
Deadlock and type safety......Page 126
Deadlock as a state property......Page 127
Deadlock for threads......Page 131
Progress up to deadlock......Page 135
Type safety for source code......Page 138
Type safety for bytecode......Page 148
Formalisations of Java and Java bytecode......Page 153
Type safety proofs and deadlocks......Page 155
Large-scale programming language formalisations......Page 156
Memory models......Page 157
The heap as a module......Page 158
Abstract operations and their properties......Page 159
Adaptations to semantics and proofs......Page 162
Design considerations......Page 166
Sequential consistency......Page 167
Java memory model......Page 168
Informal explanation......Page 169
Formal definition......Page 174
The data race freedom guarantee......Page 190
Consistency......Page 211
Type safety......Page 214
Discussion......Page 218
Memory models and data race freedom......Page 227
Abstract heap modules......Page 229
Modular formalisations......Page 230
Compiler......Page 231
Semantic preservation......Page 234
Simulation properties......Page 236
Lifting simulations in the interleaving framework......Page 244
Semantic preservation for the Java memory model......Page 251
Explicit call stacks for source code......Page 252
State and semantics......Page 253
Semantic equivalence......Page 258
Intermediate language J1......Page 262
Compilation stage 1......Page 268
Preservation of well-formedness......Page 269
Semantic preservation......Page 270
Compilation stage 2......Page 276
Preservation of well-formedness......Page 277
Semantic preservation......Page 278
Complete compiler......Page 281
Discussion......Page 283
Related work......Page 285
JinjaThreads as a Java interpreter......Page 287
Isabelle code extraction facilities......Page 288
The code generator......Page 289
The predicate compiler......Page 291
Data structures......Page 292
Locales and code extraction......Page 293
Generic well-formedness......Page 294
The bytecode verifier......Page 295
Type inference for source code......Page 297
The single-threaded semantics......Page 298
Schedulers......Page 300
Tabulation......Page 302
Efficiency of the interpreter......Page 303
Guidelines for executable formalisations......Page 306
The translator Java2Jinja......Page 308
The translation......Page 310
Validation......Page 313
Related Work......Page 315
Efforts and rewards of a machine-checked formalisation......Page 317
Experience: Working with Isabelle/HOL......Page 320
From Java light to JinjaThreads......Page 325
Comparison between Java and JinjaThreads......Page 327
Future work......Page 331
Conclusion......Page 333
Producer-consumer example......Page 337
Declarations and lookup functions......Page 341
Binary operators......Page 343
Sequential consistency......Page 345
The Java memory model......Page 347
Signatures......Page 348
Semantics of method clone......Page 349
Semantics of native methods......Page 350
Generic well-formedness......Page 353
Typing rules for expressions......Page 354
Definite Assignment......Page 356
Small-step semantics......Page 358
Observability......Page 364
Applicability and effect......Page 365
The virtual machine......Page 369
Observability......Page 374
The Java memory model......Page 375
Compilation stage 1......Page 378
Compilation stage 2......Page 379
Preprocessor......Page 383
List of Figures......Page 387
List of Tables......Page 391
Bibliography......Page 393
Index......Page 415


πŸ“œ SIMILAR VOLUMES


Concurrency: State Models & Java Program
✍ Jeff Magee, Jeff Kramer πŸ“‚ Library πŸ“… 1999 πŸ› Wiley 🌐 English

Concurrency is an area of software design that is vital in a wide range of applications where responsiveness are issues. They are especially important in the development of control systems. By their nature, concurrent programs are more complex, and therefore more difficult to reason than sequential

Concurrency: State Models & Java Program
✍ Jeff Magee, Jeff Kramer πŸ“‚ Library πŸ“… 2006 πŸ› Wiley 🌐 English

Concurrency provides a thoroughly updated approach to the basic concepts and techniques behind concurrent programming. Concurrent programming is complex and demands a much more formal approach than sequential programming. In order to develop a thorough understanding of the topic Magee and Kramer pre

Concurrency : state models & Java progra
✍ Jeff Magee; Jeff Kramer πŸ“‚ Library πŸ“… 1999 πŸ› Wiley 🌐 English

Concurrency is an area of software design that is vital in a wide range of applications where responsiveness are issues. They are especially important in the development of control systems. By their nature, concurrent programs are more complex, and therefore more difficult to reason than sequential

New Methods of Concurrent Checking
✍ Michael GΓΆessel, Vitaly Ocheretny, Egor Sogomonyan, Daniel Marienfeld (auth.) πŸ“‚ Library πŸ“… 2008 πŸ› Springer 🌐 English

<p><P><EM>New Methods of Concurrent Checking</EM> is the ultimate reference to answer the question as to how the best possible state-of-the-art error detection circuits can be designed. The most effective methods of concurrent checking for digital circuits are comprehensively described which were de

Principles of Model Checking
✍ Christel Baier, Joost-Pieter Katoen πŸ“‚ Library πŸ“… 2008 🌐 English

A comprehensive introduction to the foundations of model checking, a fully automated technique for finding flaws in hardware and software; with extensive examples and both practical and theoretical exercises.