Monad-based logics for computational effects

0Citations
Citations of this article
4Readers
Mendeley users who have this article in their library.
Get full text

Abstract

The presence of computational effects, such as state, store, exceptions, input, output, non-determinism, backtracking etc., complicates the reasoning about programs. In particular, usually for each effect (or each combination of these), an own logic needs to be designed. Monads are a well-known tool from category theory that originally has been invented for studying algebraic structures. Monads have been used very successfully by Moggi [1] to model computational effects (in particular, all of those mentioned above) in an elegent way. This has been applied both to the semantics of programming languages (e.g. [2, 3, 4, 5]) and to the encapsulation of effects in pure functional languages such as Haskell [6]. Several logics for reasoning about monadic programs have been introduced, such as evaluation logic [7, 8], Hoare logic [9] and dynamic logic [10, 11]. Some of these logics have a semantics and proof calculus given in a completely monad independent (and hence, effect independent) way. We give an overview of these logics, discuss completeness of their calculi, as well as some application of these logics to the reasoning about Haskell and Java programs, and a coding in the theorem prover Isabelle [12]. © Springer-Verlag Berlin Heidelberg 2006.

Cite

CITATION STYLE

APA

Mossakowski, T. (2006). Monad-based logics for computational effects. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 4019 LNCS, pp. 3–4). Springer Verlag. https://doi.org/10.1007/11784180_3

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free