The foundations of program verification (2nd ed.)
The foundations of program verification (2nd ed.)
Realistic compiler generation
Type systems for programming languages
Handbook of theoretical computer science (vol. B)
Notions of computation and monads
Information and Computation
Action semantics
Monad transformers and modular interpreters
POPL '95 Proceedings of the 22nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Semantic Lego
Monadic state: axiomatization and type safety
ICFP '97 Proceedings of the second ACM SIGPLAN international conference on Functional programming
Correctness of monadic state: an imperative call-by-need calculus
POPL '98 Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
On Hoare logic and Kleene algebra with tests
ACM Transactions on Computational Logic (TOCL)
An axiomatic basis for computer programming
Communications of the ACM
Calculating sharp adaptation rules
Information Processing Letters - Special issue in honor of Edsger W. Dijkstra
The Craft of Programming
Composing monads using coproducts
Proceedings of the seventh ACM SIGPLAN international conference on Functional programming
FoSSaCS '02 Proceedings of the 5th International Conference on Foundations of Software Science and Computation Structures
Metacomputation-Based Compiler Architecture
MPC '00 Proceedings of the 5th International Conference on Mathematics of Program Construction
Modular monadic semantics and compilation
Modular monadic semantics and compilation
Modular compilers and their correctness proofs
Modular compilers and their correctness proofs
Achieving Information Flow Security through Precise Control of Effects
CSFW '05 Proceedings of the 18th IEEE workshop on Computer Security Foundations
Monad-independent Hoare logic in HasCasl
FASE'03 Proceedings of the 6th international conference on Fundamental approaches to software engineering
A Semantics For Evaluation Logic
Fundamenta Informaticae
Hi-index | 0.00 |
Modularity in programming language semantics derives from abstracting over the structure of underlying denotations, yielding semantic descriptions that are more abstract and reusable. One such semantic framework is Liang's modular monadic semantics in which the underlying semantic structure is encapsulated with a monad. Such abstraction can be at odds with program verification, however, because program specifications require access to the (deliberately) hidden semantic representation. The techniques for reasoning about modular monadic definitions of imperative programs introduced here overcome this barrier. And, just like program definitions in modular monadic semantics, our program specifications and proofs are representation-independent and hold for whole classes of monads, thereby yielding proofs of great generality.