Results 1 
9 of
9
The Marriage of Effects and Monads
, 1998
"... this paper is to marry effects to monads, writing T for a computation that yields a value in and may have effects delimited by oe. Now we have that ( is ..."
Abstract

Cited by 113 (7 self)
 Add to MetaCart
(Show Context)
this paper is to marry effects to monads, writing T for a computation that yields a value in and may have effects delimited by oe. Now we have that ( is
Monads and Effects
 IN INTERNATIONAL SUMMER SCHOOL ON APPLIED SEMANTICS APPSEM’2000
, 2000
"... A tension in language design has been between simple semantics on the one hand, and rich possibilities for sideeffects, exception handling and so on on the other. The introduction of monads has made a large step towards reconciling these alternatives. First proposed by Moggi as a way of structu ..."
Abstract

Cited by 63 (6 self)
 Add to MetaCart
(Show Context)
A tension in language design has been between simple semantics on the one hand, and rich possibilities for sideeffects, exception handling and so on on the other. The introduction of monads has made a large step towards reconciling these alternatives. First proposed by Moggi as a way of structuring semantic descriptions, they were adopted by Wadler to structure Haskell programs, and now offer a general technique for delimiting the scope of effects, thus reconciling referential transparency and imperative operations within one programming language. Monads have been used to solve longstanding problems such as adding pointers and assignment, interlanguage working, and exception handling to Haskell, without compromising its purely functional semantics. The course will introduce monads, effects and related notions, and exemplify their applications in programming (Haskell) and in compilation (MLj). The course will present typed metalanguages for monads and related categorica...
Evidencebased Audit
"... Authorization logics provide a principled and flexible approach to specifying access control policies. One of their compelling benefits is that a proof in the logic is evidence that an accesscontrol decision has been made in accordance with policy. Using such proofs for auditing purposes is implici ..."
Abstract

Cited by 45 (14 self)
 Add to MetaCart
Authorization logics provide a principled and flexible approach to specifying access control policies. One of their compelling benefits is that a proof in the logic is evidence that an accesscontrol decision has been made in accordance with policy. Using such proofs for auditing purposes is implicit in much of the work on authorization logics and proofcarrying authorization. This paper explores some ramifications of adopting this “proofs as log entries ” approach to auditing. Two benefits of evidencebased audit are a reduced trusted computing base and the ability to detect flaws in complex authorization policies. Moreover, the proof structure is itself useful, because operations like proof normalization can yield information about the relevance of policy statements. To explain these observations concretely, we develop a rich authorization logic based on a dependentlytyped variant of DCC and prove the metatheoretic properties of subjectreduction and normalization. We show untrusted but welltyped applications, that access resources through an appropriate interface, must obey the access control policy and create proofs useful for audit. We show the utility of proofbased auditing in a number of examples and discuss several pragmatic issues, such as proof size, that must be addressed in this context. 1
Reducibility and ⊤⊤lifting for computation types
 In Proc. 7th International Conference on Typed Lambda Calculi and Applications (TLCA), volume 3461 of Lecture Notes in Computer Science
, 2005
"... Abstract. We propose ⊤⊤lifting as a technique for extending operational predicates to Moggi’s monadic computation types, independent of the choice of monad. We demonstrate the method with an application to GirardTait reducibility, using this to prove strong normalisation for the computational meta ..."
Abstract

Cited by 18 (2 self)
 Add to MetaCart
(Show Context)
Abstract. We propose ⊤⊤lifting as a technique for extending operational predicates to Moggi’s monadic computation types, independent of the choice of monad. We demonstrate the method with an application to GirardTait reducibility, using this to prove strong normalisation for the computational metalanguage λml. The particular challenge with reducibility is to apply this semantic notion at computation types when the exact meaning of “computation ” (stateful, sideeffecting, nondeterministic, etc.) is left unspecified. Our solution is to define reducibility for continuations and use that to support the jump from value types to computation types. The method appears robust: we apply it to show strong normalisation for the computational metalanguage extended with sums, and with exceptions. Based on these results, as well as previous work with local state, we suggest that this “leapfrog ” approach offers a general method for raising concepts defined at value types up to observable properties of computations. 1
CPS Translations and Applications: The Cube and Beyond
 Higher Order and Symbolic Computation
, 1996
"... Continuation passing style (CPS) translations of typed calculi have numerous applications. However, the range of these applications has been conned by the fact that CPS translations are known for nondependent type systems only, thus excluding wellknown systems like the calculus of constructions ( ..."
Abstract

Cited by 11 (2 self)
 Add to MetaCart
Continuation passing style (CPS) translations of typed calculi have numerous applications. However, the range of these applications has been conned by the fact that CPS translations are known for nondependent type systems only, thus excluding wellknown systems like the calculus of constructions (CC) and the logical frameworks (LF). This paper presents techniques for CPS translating systems with dependent types, with an emphasis on pure typetheoretical applications.
CPS translating inductive and coinductive types
 In Proc. Partial Evaluation and SemanticsBased Program Manipulation
, 2002
"... Abstract. We show that the callbyname monad translation of simply typed lambda calculus extended with sum and product types extends to special and general inductive and coinductive types so that its crucial property of preserving typings and β and commuting reductions is maintained. Specific simi ..."
Abstract

Cited by 7 (0 self)
 Add to MetaCart
(Show Context)
Abstract. We show that the callbyname monad translation of simply typed lambda calculus extended with sum and product types extends to special and general inductive and coinductive types so that its crucial property of preserving typings and β and commuting reductions is maintained. Specific similarpurpose translations such as CPS translations follow from the general monad translations by specialization for appropriate concrete monads. 1
Monads and eects
 Lecture Notes in Computer Science
, 2002
"... Abstract. A tension in language design has been between simple semantics on the one hand, and rich possibilities for sideeects, exception handling and so on on the other. The introduction of monads has made a large step towards reconciling these alternatives. First proposed by Moggi as a way of st ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
(Show Context)
Abstract. A tension in language design has been between simple semantics on the one hand, and rich possibilities for sideeects, exception handling and so on on the other. The introduction of monads has made a large step towards reconciling these alternatives. First proposed by Moggi as a way of structuring semantic descriptions, they were adopted by Wadler to structure Haskell programs, and now oer a general technique for delimiting the scope of eects, thus reconciling referential transparency and imperative operations within one programming language. Monads have been used to solve longstanding problems such as adding pointers and assignment, interlanguage working, and exception handling to Haskell, without compromising its purely functional semantics. The course will introduce monads, eects and related notions, and exemplify their applications in programming (Haskell) and in compilation (MLj). The course will present typed metalanguages for monads and related categorical notions, and describe how they can be further rened by introducing eects.
Monads and Effects (revised)
, 2000
"... . A tension in language design has been between simple semantics ..."
and Reasoning about Programs—Mechanical verification
"... Proof assistants based on dependent type theory are closely related to functional programming languages, and so it is tempting to use them to prove the correctness of functional programs. In this paper, we show how Agda, such a proof assistant, can be used to prove theorems about Haskell programs. H ..."
Abstract
 Add to MetaCart
(Show Context)
Proof assistants based on dependent type theory are closely related to functional programming languages, and so it is tempting to use them to prove the correctness of functional programs. In this paper, we show how Agda, such a proof assistant, can be used to prove theorems about Haskell programs. Haskell programs are translated into an Agda model of their semantics, by translating via GHC’s Core language into a monadic form specially adapted to represent Haskell’s polymorphism in Agda’s predicative type system. The translation can support reasoning about either total values only, or total and partial values, by instantiating the monad appropriately. We claim that, although these Agda models are generated by a relatively complex translation process, proofs about them are simple and natural, and we offer a number of examples to support this claim.