Abstract
We integrate non-strict computations into the Unifying Theories of Programming. After showing that this is not possible with designs, we develop a new relational model representing undefinedness independently of non-termination. The relations satisfy additional healthiness conditions that model dependence in computations in an elegant algebraic form using partial orders. Programs can be executed according to the principle of lazy evaluation, otherwise known from functional programming languages. We extend the theory to support infinite data structures and give examples to show their use in programs.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abramsky, S., Jung, A.: Domain theory. In: Abramsky, S., Gabbay, D.M., Maibaum, T.S.E. (eds.) Handbook of Logic in Computer Science, Semantic Structures, vol. 3, ch. 1, pp. 1–168. Clarendon Press (1994)
Backhouse, R.C., de Bruin, P.J., Hoogendijk, P., Malcolm, G., Voermans, E., van der Woude, J.: Polynomial relators (extended abstract). In: Nivat, M., Rattray, C., Rus, T., Scollo, G. (eds.) Algebraic Methodology and Software Technology, pp. 303–326. Springer, Heidelberg (1992)
Berghammer, R., von Karger, B.: Relational semantics of functional programs. In: Brink, C., Kahl, W., Schmidt, G. (eds.) Relational Methods in Computer Science, ch. 8, pp. 115–130. Springer, Wien (1997)
Broy, M., Gnatz, R., Wirsing, M.: Semantics of nondeterministic and noncontinuous constructs. In: Bauer, F.L., Broy, M. (eds.) Program Construction. LNCS, vol. 69, pp. 553–592. Springer, Heidelberg (1979)
Broy, M., Ştefănescu, G.: The algebra of stream processing functions. Theoretical Computer Science 258(1-2), 99–129 (2001)
Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order, 2nd edn. Cambridge University Press, Cambridge (2002)
Dijkstra, E.W.: A Discipline of Programming. Prentice Hall, Englewood Cliffs (1976)
Dunne, S.: Recasting Hoare and He’s Unifying Theory of Programs in the context of general correctness. In: Butterfield, A., Strong, G., Pahl, C. (eds.) 5th Irish Workshop on Formal Methods. Electronic Workshops in Computing. The British Computer Society (July 2001)
Gibbons, J., Jones, G.: The under-appreciated unfold. In: Proceedings of the third ACM SIGPLAN International Conference on Functional Programming, pp. 273–279. ACM Press, New York (1998)
Guttmann, W.: Non-termination in Unifying Theories of Programming. In: MacCaull, W., Winter, M., Düntsch, I. (eds.) RelMiCS 2005. LNCS, vol. 3929, pp. 108–120. Springer, Heidelberg (2006)
Guttmann, W.: Algebraic Foundations of the Unifying Theories of Programming. PhD thesis, Universität Ulm (December 2007)
Guttmann, W.: Lazy relations. In: Berghammer, R., Möller, B., Struth, G. (eds.) RelMiCS/AKA 2008. LNCS, vol. 4988, pp. 138–154. Springer, Heidelberg (2008)
Hesselink, W.H.: Programs, Recursion and Unbounded Choice. Cambridge University Press, Cambridge (1992)
Hoare, C.A.R.: Theories of programming: Top-down and bottom-up and meeting in the middle. In: Wing, J.M., Woodcock, J., Davies, J. (eds.) FM 1999. LNCS, vol. 1708, pp. 1–27. Springer, Heidelberg (1999)
Hoare, C.A.R., He, J.: Unifying theories of programming. Prentice Hall Europe (1998)
ISO/IEC. Information technology: Z formal specification notation: Syntax, type system and semantics. ISO/IEC 13568:2002(E) (July 2002)
Launchbury, J.: Lazy imperative programming. In: Hudak, P. (ed.) Proceedings of the ACM SIGPLAN Workshop on State in Programming Languages. Yale University Research Report YALEU/DCS/RR-968, pp. 46–56 (June 1993)
Launchbury, J., Peyton Jones, S.: State in Haskell. Lisp and Symbolic Computation 8(4), 293–341 (1995)
Meijer, E., Fokkinga, M., Paterson, R.: Functional programming with bananas, lenses, envelopes and barbed wire. In: Hughes, J. (ed.) FPCA 1991. LNCS, vol. 523, pp. 124–144. Springer, Heidelberg (1991)
Naumann, D.A.: A categorical model for higher order imperative programming. Mathematical Structures in Computer Science 8(4), 351–399 (1998)
Naumann, D.A.: Predicate transformer semantics of a higher-order imperative language with record subtyping. Science of Computer Programming 41(1), 1–51 (2001)
Naumann, D.A.: Soundness of data refinement for a higher-order imperative language. Theoretical Computer Science 278(1-2), 271–301 (2002)
Nelson, G.: A generalization of Dijkstra’s calculus. ACM Transactions on Programming Languages and Systems 11(4), 517–561 (1989)
O’Neill, M.E.: The genuine sieve of Eratosthenes. Journal of Functional Programming 19(1), 95–106 (2009)
Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)
Plasmeijer, R., van Eekelen, M.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley, Reading (1993)
Plotkin, G.D.: A powerdomain construction. SIAM Journal on Computing 5(3), 452–487 (1976)
de Roever, W.-P.: Recursive program schemes: semantics and proof theory. Mathematical Centre Tracts, vol. 70. Mathematisch Centrum, Amsterdam (1976)
Van Roy, P., Haridi, S.: Concepts, Techniques, and Models of Computer Programming. MIT Press, Cambridge (2004)
Schmidt, D.A.: Denotational Semantics: A Methodology for Language Development. William C. Brown Publishers (1986)
Schmidt, G., Hattensperger, C., Winter, M.: Heterogeneous relation algebra. In: Brink, C., Kahl, W., Schmidt, G. (eds.) Relational Methods in Computer Science, ch. 3, pp. 39–53. Springer, Wien (1997)
Schmidt, G., Ströhlein, T.: Relationen und Graphen. Springer, Heidelberg (1989)
Schröder, B.S.W.: Ordered Sets: An Introduction. Birkhäuser, Basel (2003)
Smithson, R.E.: Fixed points of order preserving multifunctions. Proceedings of the American Mathematical Society 28(1), 304–310 (1971)
Søndergaard, H., Sestoft, P.: Non-determinism in functional languages. The Computer Journal 35(5), 514–523 (1992)
Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge (1977)
Turner, D.A.: Miranda: A non-strict functional language with polymorphic types. In: Jouannaud, J.-P. (ed.) FPCA 1985. LNCS, vol. 201, pp. 1–16. Springer, Heidelberg (1985)
Walker, J.W.: Isotone relations and the fixed point property for posets. Discrete Mathematics 48(2-3), 275–288 (1984)
Woodcock, J., Davies, J.: Using Z. Prentice Hall, Englewood Cliffs (1996)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Guttmann, W. (2010). Lazy UTP. In: Butterfield, A. (eds) Unifying Theories of Programming. UTP 2008. Lecture Notes in Computer Science, vol 5713. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-14521-6_6
Download citation
DOI: https://doi.org/10.1007/978-3-642-14521-6_6
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-14520-9
Online ISBN: 978-3-642-14521-6
eBook Packages: Computer ScienceComputer Science (R0)