Skip to main content

Lazy UTP

  • Conference paper
Unifying Theories of Programming (UTP 2008)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 5713))

Included in the following conference series:

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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)

    Google Scholar 

  2. 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)

    Google Scholar 

  3. 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)

    Google Scholar 

  4. 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)

    Chapter  Google Scholar 

  5. Broy, M., Ştefănescu, G.: The algebra of stream processing functions. Theoretical Computer Science 258(1-2), 99–129 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  6. Davey, B.A., Priestley, H.A.: Introduction to Lattices and Order, 2nd edn. Cambridge University Press, Cambridge (2002)

    MATH  Google Scholar 

  7. Dijkstra, E.W.: A Discipline of Programming. Prentice Hall, Englewood Cliffs (1976)

    MATH  Google Scholar 

  8. 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)

    Google Scholar 

  9. 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)

    Chapter  Google Scholar 

  10. 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)

    Chapter  Google Scholar 

  11. Guttmann, W.: Algebraic Foundations of the Unifying Theories of Programming. PhD thesis, Universität Ulm (December 2007)

    Google Scholar 

  12. 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)

    Chapter  Google Scholar 

  13. Hesselink, W.H.: Programs, Recursion and Unbounded Choice. Cambridge University Press, Cambridge (1992)

    Book  MATH  Google Scholar 

  14. 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)

    Chapter  Google Scholar 

  15. Hoare, C.A.R., He, J.: Unifying theories of programming. Prentice Hall Europe (1998)

    Google Scholar 

  16. ISO/IEC. Information technology: Z formal specification notation: Syntax, type system and semantics. ISO/IEC 13568:2002(E) (July 2002)

    Google Scholar 

  17. 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)

    Google Scholar 

  18. Launchbury, J., Peyton Jones, S.: State in Haskell. Lisp and Symbolic Computation 8(4), 293–341 (1995)

    Article  Google Scholar 

  19. 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)

    Google Scholar 

  20. Naumann, D.A.: A categorical model for higher order imperative programming. Mathematical Structures in Computer Science 8(4), 351–399 (1998)

    Article  MATH  MathSciNet  Google Scholar 

  21. Naumann, D.A.: Predicate transformer semantics of a higher-order imperative language with record subtyping. Science of Computer Programming 41(1), 1–51 (2001)

    Article  MATH  MathSciNet  Google Scholar 

  22. Naumann, D.A.: Soundness of data refinement for a higher-order imperative language. Theoretical Computer Science 278(1-2), 271–301 (2002)

    Article  MATH  MathSciNet  Google Scholar 

  23. Nelson, G.: A generalization of Dijkstra’s calculus. ACM Transactions on Programming Languages and Systems 11(4), 517–561 (1989)

    Article  Google Scholar 

  24. O’Neill, M.E.: The genuine sieve of Eratosthenes. Journal of Functional Programming 19(1), 95–106 (2009)

    Article  MATH  Google Scholar 

  25. Peyton Jones, S. (ed.): Haskell 98 Language and Libraries: The Revised Report. Cambridge University Press, Cambridge (2003)

    Google Scholar 

  26. Plasmeijer, R., van Eekelen, M.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley, Reading (1993)

    MATH  Google Scholar 

  27. Plotkin, G.D.: A powerdomain construction. SIAM Journal on Computing 5(3), 452–487 (1976)

    Article  MATH  MathSciNet  Google Scholar 

  28. de Roever, W.-P.: Recursive program schemes: semantics and proof theory. Mathematical Centre Tracts, vol. 70. Mathematisch Centrum, Amsterdam (1976)

    MATH  Google Scholar 

  29. Van Roy, P., Haridi, S.: Concepts, Techniques, and Models of Computer Programming. MIT Press, Cambridge (2004)

    Google Scholar 

  30. Schmidt, D.A.: Denotational Semantics: A Methodology for Language Development. William C. Brown Publishers (1986)

    Google Scholar 

  31. 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)

    Google Scholar 

  32. Schmidt, G., Ströhlein, T.: Relationen und Graphen. Springer, Heidelberg (1989)

    MATH  Google Scholar 

  33. Schröder, B.S.W.: Ordered Sets: An Introduction. Birkhäuser, Basel (2003)

    MATH  Google Scholar 

  34. Smithson, R.E.: Fixed points of order preserving multifunctions. Proceedings of the American Mathematical Society 28(1), 304–310 (1971)

    MATH  MathSciNet  Google Scholar 

  35. Søndergaard, H., Sestoft, P.: Non-determinism in functional languages. The Computer Journal 35(5), 514–523 (1992)

    Article  MathSciNet  Google Scholar 

  36. Stoy, J.E.: Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge (1977)

    Google Scholar 

  37. 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)

    Google Scholar 

  38. Walker, J.W.: Isotone relations and the fixed point property for posets. Discrete Mathematics 48(2-3), 275–288 (1984)

    Article  MATH  MathSciNet  Google Scholar 

  39. Woodcock, J., Davies, J.: Using Z. Prentice Hall, Englewood Cliffs (1996)

    MATH  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics