TL;DR: This work shows that the type, region, and effect system of Talpin and Jouvelot carries over directly to an analogous system for monads, including a type and effect reconstruction algorithm.
Abstract: Gifford and others proposed an effect typing discipline to delimit the scope of computational effects within a program, while Moggi and others proposed monads for much the same purpose. Here we marry effects to monads, uniting two previously separate lines of research. In particular, we show that the type, region, and effect system of Talpin and Jouvelot carries over directly to an analogous system for monads, including a type and effect reconstruction algorithm. The same technique should allow one to transpose any effect system into a corresponding monad system.
TL;DR: The first type and effect system for proving authenticity properties of security protocols based on asymmetric cryptography is presented, using challenge/response types to support a variety of idioms used to guarantee message freshness.
Abstract: We present the first type and effect system for proving authenticity properties of security protocols based on asymmetric cryptography. The most significant new features of our type system are: (1) a separation of public types (for data possibly sent to the opponent) from tainted types (for data possibly received from the opponent) via a subtype relation; (2) trust effects, to guarantee that tainted data does not, in fact, originate from the opponent; and (3) challenge/response types to support a variety of idioms used to guarantee message freshness. We illustrate the applicability of our system via protocol examples.
This material is based upon work supported by the National Science Foundation under Grant No. 0208549.
TL;DR: This work presents the first type and effect system for proving authenticity properties of security protocols based on asymmetric cryptography, and uses challenge/response types to support a variety of idioms used to guarantee message freshness.
Abstract: We present the first type and effect system for proving authenticity properties of security protocols based on asymmetric cryptography. The most significant new features of our type system are: (1) a separation of public types (for data possibly sent to the opponent) from tainted types (for data possibly received from the opponent) via a subtype relation; (2) trust effects, to guarantee that tainted data does not, in fact, originate from the opponent; and (3) challenge/response types to support a variety of idioms used to guarantee message freshness. We illustrate the applicability of our system via protocol examples.
TL;DR: A generalization of standard effect systems that are useful when the past or future computation of the program is relevant at various program points, and how future effects can be used in the analysis of multi-threaded programs to find thread-shared locations is presented.
Abstract: This paper presents a generalization of standard effect systems that we call contextual effects. A traditional effect system computes the effect of an expression e. Our system additionally computes the effects of the computational context in which e occurs. More specifically, we computethe effect of the computation that has already occurred(the prior effect) and the effect of the computation yet to take place (the future effect).Contextual effects are useful when the past or future computation of the program is relevant at various program points. We present two substantial examples. First, we show how prior and future effects can be used to enforce transactional version consistency(TVC), a novel correctness property for dynamic software updates. TV Censures that programmer-designated transactional code blocks appear to execute entirely at the same code version, even if a dynamic update occurs in the middle of the block. Second, we show how future effects can be used in the analysis of multi-threaded programs to find thread-shared locations. This is an essential step in applications such as data race detection.
TL;DR: A type and effect system for Fickle is developed and proved its soundness with respect to the operational semantics, which means that even though objects may be re-classified across classes with different members, they will never attempt to access nonexisting members.
Abstract: Re-classification changes at run-time the class membership of an object while retaining its identity We suggest language features for object re-classification, which could extend an imperative, typed, classbased, object-oriented languageWe present our proposal through the language Fickle The imperative features combined with the requirement for a static and safe type system provided the main challenges We develop a type and effect system for Fickle and prove its soundness with respect to the operational semantics In particular, even though objects may be re-classified across classes with different members, they will never attempt to access nonexisting members