We extend type and effect analyses to permit dynamically changing effects and dynamically changing code in multi-threaded systems with shared resources. We guarantee that after a well typed modification a set of threads will have the specified desired effects and will continue to safely use the resources. We prove the key properties of subject reduction and fidelity (safety) for our general system. We provide an application of our system: dynamic software updating for a multi-threaded asynchronous message passing system. We show how key safety properties from session typing follow from the properties of our general system
Dynamic typing is a program analysis targeted at removing runtime tagging and untagging operations i...
It can be difficult to write safe concurrent programs which use shared mutable state. Subtle mistake...
In this book we develop powerful techniques based on formal methods for the verification of correctn...
Side-effect are ubiquitous in programming. Examples include mutable state, exceptions, non-determini...
Type-and-effect systems are a powerful tool for program construction and verification. We describe i...
Abstract. The design and implementation of a correct system can benefit from employing static techni...
Type-and-effect systems are a powerful tool for program construction and verification. We describe i...
Type systems commonly used in practice today fail to capture essential aspects of program behavior: ...
We present a general semantic account of Gifford-style type-and-effect systems. These type systems p...
Dynamic software update is a technique by which a running pro-gram can be updated with new code and ...
Dynamic software update is a technique by which a running program can be updated with new code and d...
Abstract. The design and implementation of a correct system can be-nefit from employing static techn...
We present a general semantic account of Gifford-style type-and-effect systems. These type systems ...
Modern software systems, in particular distributed ones, are everywhere around us and are at the bas...
Correctly developing multi-threaded programs is notoriously difficult, and getting total coverage us...
Dynamic typing is a program analysis targeted at removing runtime tagging and untagging operations i...
It can be difficult to write safe concurrent programs which use shared mutable state. Subtle mistake...
In this book we develop powerful techniques based on formal methods for the verification of correctn...
Side-effect are ubiquitous in programming. Examples include mutable state, exceptions, non-determini...
Type-and-effect systems are a powerful tool for program construction and verification. We describe i...
Abstract. The design and implementation of a correct system can benefit from employing static techni...
Type-and-effect systems are a powerful tool for program construction and verification. We describe i...
Type systems commonly used in practice today fail to capture essential aspects of program behavior: ...
We present a general semantic account of Gifford-style type-and-effect systems. These type systems p...
Dynamic software update is a technique by which a running pro-gram can be updated with new code and ...
Dynamic software update is a technique by which a running program can be updated with new code and d...
Abstract. The design and implementation of a correct system can be-nefit from employing static techn...
We present a general semantic account of Gifford-style type-and-effect systems. These type systems ...
Modern software systems, in particular distributed ones, are everywhere around us and are at the bas...
Correctly developing multi-threaded programs is notoriously difficult, and getting total coverage us...
Dynamic typing is a program analysis targeted at removing runtime tagging and untagging operations i...
It can be difficult to write safe concurrent programs which use shared mutable state. Subtle mistake...
In this book we develop powerful techniques based on formal methods for the verification of correctn...