Computing in unpredictable environments: Semantics, reduction strategies, and program transformations

  • Björn Lisper
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1059)


We study systems where deterministic computations take place in environments which may behave nondeterministically. We give a simple formalization by unions of abstract reduction systems, on which various semantics can be based in a straightforward manner. We then prove that under a simple condition on the reduction systems, the following holds: reduction strategies which are cofinal for the deterministic reduction system will implement the semantics for the combined system, provided the environment behaves in a“fair” manner, and certain program transformations, such as folding and unfolding, will preserve the semantics. An application is evaluation strategies and program transformations for concurrent languages.


formal semantics program transformations nondeterminism reduction systems recursive program schemes 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    M. Abadi, L. Cardelli, P.-L. Curien, and J.-J. Lévy. Explicit substitutions. In Proc. Seventh Annual ACM Symposium on Principles of Programming Languages, pages 31–46, San Francisco, Jan. 1990.Google Scholar
  2. 2.
    S. Abramsky. The lazy lambda calculus. In D. A. Turner, editor, Research Topics in Functional Programming, The UT Year of Programming Series, chapter 4, pages 65–116. Addison-Wesley, Reading, MA, 1989.Google Scholar
  3. 3.
    Z. M. Ariola and Arvind. Properties of a first-order functional language with sharing. Theoret. Comput. Sci., 146:69–108, 1995.Google Scholar
  4. 4.
    J. Armstrong, R. Virding, and M. Williams. Concurrent Programming in ER-LANG. Prentice Hall, 1993.Google Scholar
  5. 5.
    A. Arnold, P. Naudin, and M. Nivat. On semantics of nondeterministic recursive program schemes. In M. Nivat and J. C. Reynolds, editors, Algebraic Methods in Semantics, chapter 1, pages 1–33. Cambridge University Press, 1985.Google Scholar
  6. 6.
    H. P. Barendregt. The Lambda Calculus — Its Syntax and Semantics, volume 103 of Studies in Logic and the Foundations of Mathematics. North-Holland, Amsterdam, 1981.Google Scholar
  7. 7.
    G. Boudol. Computational semantics of term rewriting systems. In M. Nivat and J. C. Reynolds, editors, Algebraic Methods in Semantics, chapter 5, pages 170–236. Cambridge University Press, 1985.Google Scholar
  8. 8.
    R. M. Burstall and J. Darlington. A transformation system for developing recursive programs. J. Assoc. Comput. Mach., 24(1):44–67, Jan. 1977.Google Scholar
  9. 9.
    B. Courcelle. Infinite trees in normal form and recursive equations having a unique solution. Math. System. Theory, 13:131–180, 1979.Google Scholar
  10. 10.
    B. Courcelle. Equivalence and transformations of regular systems. Theoret. Comput. Sci., 42:1–122, 1986.Google Scholar
  11. 11.
    B. Courcelle. Recursive applicative program schemes. In J. van Leeuwen, editor, Handbook of Theoretical Computer Science, chapter 9, pages 459–492. Elsevier Science Publishers B. V., 1990.Google Scholar
  12. 12.
    N. Dershowitz, S. Kaplan, and D. A. Plaisted. Rewrite, rewrite, rewrite, rewrite, rewrite, ... Theoret. Comput. Sci., 83(1):71–96, 1991.Google Scholar
  13. 13.
    J. A. Goguen, J. W. Thatcher, E. G. Wagner, and J. B. Wright. Initial algebra semantics ans continuous algebras. J. Assoc. Comput. Mach., 24(1):68–95, Jan. 1977.Google Scholar
  14. 14.
    G. Huet. Confluent reductions: Abstract properties and applications to term rewriting systems. J. Assoc. Comput. Mach., 27(4):797–821, Oct. 1980.Google Scholar
  15. 15.
    G. Huet and B. Lang. Proving and applying program transformations expressed with second-order patterns. Acta Inform., 11(1):31–S5, Jan. 1978.Google Scholar
  16. 16.
    J. Hughes and A. Moran. Making choices lazily. In Proc. Seventh Conference on Functional Programming Languages and Computer Architecture. ACM Press, June 1995.Google Scholar
  17. 17.
    N. D. Jones. Challenging problems in partial evaluation and mixed computation. In D. BjØrner, A. P. Ershov, and N. D. Jones, editors, Partial Evaluation and Mixed Computation. Proceedings of the IFIP TC2 Workshop, Gammel Avern∄s, Denmark, Oct. 1987, pages 1–14. North-Holland, 1988.Google Scholar
  18. 18.
    N. D. Jones, C. K. Gomard, and P. Sestoft. Partial Evaluation and Automatic Program Generation. Prentice Hall, Hertfordshire, UK, 1993.Google Scholar
  19. 19.
    R. Kennaway, J. W. Klop, R. Sleep, and F.-J. de Vries. Transfinite reductions in orthogonal term rewriting systems. Information and Computation, 119(1):18–38, May 1995.Google Scholar
  20. 20.
    J. W. Klop. Combinatory Reduction Systems. PhD thesis, CWI, Amsterdam, 1980. Mathematical Centre Tracts Nr. 127.Google Scholar
  21. 21.
    J. W. Klop. Term rewriting systems. In S. Abramsky, D. M. Gabbay, and T. S. E. Maibaum, editors, Handbook of Logic in Computer Science, vol. 2, chapter 1, pages 1–116. Oxford University Press, Oxford, 1992.Google Scholar
  22. 22.
    L. Kott. Unfold/fold program transformations. In M. Nivat and J. C. Reynolds, editors, Algebraic Methods in Semantics, chapter 12, pages 411–434. Cambridge University Press, 1985.Google Scholar
  23. 23.
    M. Nivat. On the interpretation of recursive polyadic program schemes. Symposia Mathematica, 15:255–281, 1975.Google Scholar
  24. 24.
    G. Plotkin. LCF considered as a programming language. Theoret. Comput. Sci., 5(3):223–256, Dec. 1977.Google Scholar
  25. 25.
    J.-C. Raoult and J. Vuillemin. Operational and semantic equivalence between recursive programs. J. Assoc. Comput. Mach., 27(4):772–796, Oct. 1980.Google Scholar
  26. 26.
    J. H. Reppy. CML: A higher order concurrent language. In Proc. SIGPLAN'91 Conference on Programming Language Design and Implementation, pages 293–305, 1991.Google Scholar
  27. 27.
    D. Sahlin. Partial evaluation of AKL. In Proc. First International Workshop on Concurrent Constraint Programming, Cà Dolfin, Venice, May 1995.Google Scholar
  28. 28.
    H. SØndergaard and P. Sestoft. Referential transparency, definiteness and unfoldability. Acta Informatica, 27:505–517, 1990.Google Scholar
  29. 29.
    B. Thomsen, L. Leth, and A. Giacalone. Some Facile chemistry. Tech. Rep. ECRC-92-14, European Computer-Industry Research Centre, 1992.Google Scholar
  30. 30.
    D. A. Turner, editor. Research Topics in Functional Programming. Addison-Wesley, Reading, MA, 1989.Google Scholar
  31. 31.
    V. van Oostrom. Private communication.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Björn Lisper
    • 1
  1. 1.Department of TeleinformaticsRoyal Institute of TechnologyKistaSweden

Personalised recommendations