Abstract
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.
This research supported in part by subcontract GPACS0016, System Information Assurance II, through OGI/Oregon Health & Sciences University.
Access provided by Autonomous University of Puebla. Download to read the full chapter text
Chapter PDF
Similar content being viewed by others
References
Ariola, Z.M., Sabry, A.: Correctness of monadic state: an imperative call-by-need calculus. In: Conference Record of POPL 1998: The 25th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Diego, California, New York, NY, pp. 62–73 (1998)
Espinosa, D.: Semantic Lego. PhD thesis, Columbia University (1995)
Führmann, C.: Varieties of effects. In: Nielsen, M., Engberg, U. (eds.) FOSSACS 2002. LNCS, vol. 2303, pp. 144–158. Springer, Heidelberg (2002)
Ghani, N., Lüth, C.: Composing monads using coproducts. In: ACM International Conference on Functional Programming, pp. 133–144 (2002)
Goguen, J.A., Meseguer, J.: Security policies and security models. In: Proceedings of the 1982 Symposium on Security and Privacy (SSP 1982), pp. 11–20. IEEE Computer Society Press, Los Alamitos (1990)
Harrison, W.: Modular Compilers and Their Correctness Proofs. PhD thesis, University of Illinois at Urbana-Champaign (2001)
Harrison, W., Hook, J.: Achieving information flow security through precise control of effects. In: 18th IEEE Computer Security Foundations Workshop (CSFW 2005) (June 2005)
Harrison, W., Kamin, S.: Metacomputation-based compiler architecture. In: Backhouse, R., Oliveira, J.N. (eds.) MPC 2000. LNCS, vol. 1837, pp. 213–229. Springer, Heidelberg (2000)
Hoare, C.A.R.: An axiomatic basis for computer programming. Communications of the ACM 12(10), 576–580 (1969)
Kozen, D.: On Hoare logic and Kleene algebra with tests. ACM Transactions on Computational Logic 1(1), 60–76 (2000)
Launchbury, J., Sabry, A.: Monadic state: Axiomatization and type safety. In: ACM SIGPLAN International Conference on Functional Programming, pp. 227–238 (1997)
Lee, P.: Realistic Compiler Generation. Foundations of Computing Series. MIT Press, Cambridge (1989)
Liang, S.: Modular Monadic Semantics and Compilation. PhD thesis, Yale University (1997)
Liang, S., Hudak, P., Jones, M.: Monad transformers and modular interpreters. In: Proceedings of the 22nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL), pp. 333–343. ACM Press, New York (1995)
Loeckx, J., Sieber, K., Stansifer, R.D.: The Foundations of Program Verification, 2nd edn. Wiley-Teubner Series in Computer Science. Wiley, Chichester (1987)
Mitchell, J.C.: Type systems for programming languages, In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, ch. 8. Formal Models and Semantics, vol. B, pp. 365–458. North-Holland, New York (1990)
Moggi, E.: Notions of computation and monads. Information and Computation 93(1), 55–92 (1991)
Moggi, E.: Personal communication with author
Moggi, E.: Representing program logics in evaluation logic (unpublished manuscript), available online (1994)
Moggi, E.: A semantics for evaluation logic. FUNDINF: Fundamenta Informatica 22 (1995)
Moggi, E.: An abstract view of programming languages. Technical Report ECS-LFCS-90-113, Dept. of Computer Science, Edinburgh Univ., 90
Mosses, P.D.: Action Semantics. Number 26 in Cambridge Tracts in Theoretical Computer Science. Cambridge University Press, Cambridge (1992)
Naumann, D.A.: Calculating sharp adaptation rules. Information Processing Letters 77(2-4), 201–208 (2001)
Pitts, A.M.: Evaluation logic. In: Birtwistle, G. (ed.) IVth Higher Order Workshop, Banff 1990, Workshops in Computing, pp. 162–189. Springer, Berlin (1991)
Plotkin, G., Power, J.: Algebraic operations and generic effects. Applied Categorical Structures 11, 69–94 (2003)
Reynolds, J.C.: The Craft of Programming. Prentice-Hall, Englewood Cliffs (1981)
Schröder, L., Mossakowski, T.: Monad-independent hoare logic in HASCASL. In: Pezzé, M. (ed.) FASE 2003. LNCS, vol. 2621, pp. 261–277. Springer, Heidelberg (2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Harrison, W.L. (2006). Proof Abstraction for Imperative Languages. In: Kobayashi, N. (eds) Programming Languages and Systems. APLAS 2006. Lecture Notes in Computer Science, vol 4279. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11924661_6
Download citation
DOI: https://doi.org/10.1007/11924661_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-48937-5
Online ISBN: 978-3-540-48938-2
eBook Packages: Computer ScienceComputer Science (R0)