Advertisement

Detailization and lazy evaluation, infinite objects and pointer representation

  • F. L. Bauer
III. Program Development By Transformation
Part of the Lecture Notes in Computer Science book series (LNCS, volume 69)

Abstract

Using the concept of "detailization", i.e. introduction of auxiliary denotations, and the strategy of "lazy evaluation" of recursive functions, a collection of linked objects ("nexus of objects") can be described on the applicative level by their constructing functions such that this leads to the introduction of pointers when passing to the procedural, container-oriented level. Examples of such a transformation to pointer representation are discussed, in particular the use of pointer variables and selective updating of composed objects in removing recursion from functions over the objects introduced.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

Literature

  1. 1.
    Backus, J.: Can programming be liberated from the von Neumann style? A functional style and its algebra of programs. Comm. ACM 21, 613–641 (1978)Google Scholar
  2. 2.
    Bauer, F.L.: Vorlesungsskriptum Algorithmische Sprachen, Kap.4. Institut für Informatik der Technischen Universität München, Februar 1978Google Scholar
  3. 3.
    Bauer, F.L., Partsch, H., Pepper, P., Wössner, H.: Techniques for program development. In: Software Engineering Techniques. Infotech State of the Art Report 34. Maidenhead: Infotech International 1977, p. 25–30Google Scholar
  4. 4.
    Berkling, K.J.: Reduction languages for reduction machines. Gesellschaft für Mathematik und Datenverarbeitung mbH Bonn, Interner Bericht ISF-76-8, Sept. 1976Google Scholar
  5. 5.
    Cooper, D.C.: The equivalence of certain computations. Computer Journal 9, 45–52 (1966)Google Scholar
  6. 6.
    Friedman, D.P., Wise, D.S.: CONS should not evaluate its arguments. In: Michaelson, S., Milner, R. (eds.): Automata, Languages and Programming. Edinburgh: University Press 1976, p. 257–284Google Scholar
  7. 7.
    Friedman, D.P., Wise, D.S.: Unbounded computational structures. Softw. Pract. Exper. 8, 407–416Google Scholar
  8. 8.
    Goldstine, H.H., Neumann, J. von: Planning and coding problems for an electronic computing instrument, Part II, Volume 1. In: Neumann, J. von: Collected Works, Volume V. Oxford-London-New York-Paris: Pergamon Press 1963, p. 80–152Google Scholar
  9. 9.
    Haskell, R.: Efficient implementation of a class of recursively defined functions. Computer Journal 18, 23–29 (1975)Google Scholar
  10. 10.
    Henderson, P., Morris, J.H. jr.: A lazy evaluator. Conference Record of the Third ACM Symposium on Principles of Programming Languages, Atlanta, Jan. 1976, p. 95–103Google Scholar
  11. 11.
    Knuth, D.: Structured programming with go to statements. Computing Surveys 6, 261–301 (1974)Google Scholar
  12. 12.
    Krieg-Brückner, B.: Concrete and abstract specification, modularization and program development by transformation. Dissertation, Institut für Informatik der Technischen Universität München. TUM-INFO-7805, Jan. 1978Google Scholar
  13. 13.
    Landin, P.J.: A correspondence between ALGOL 60 and Church's lambda notation. Part I: Comm. ACM 8, 89–158, Part II: Comm. ACM 8, 158–165 (1965)Google Scholar
  14. 14.
    Landin, P.J.: The next 700 programming languages. Comm. ACM 9, 157–166 (1966)Google Scholar
  15. 15.
    Laut, A.: Unterdrückung konstanter Parameter. Institut für Informatik der Technischen Universität München, Interner Bericht, April 1978Google Scholar
  16. 16.
    Magó, G.A.: A network of microprocessors to execute reduction languages. International Journal of Computer and Information Science (to appear)Google Scholar
  17. 17.
    Scott, D.: Data Types as Lattices. SIAM Journal on Computing 5, 522–587 (1976)Google Scholar
  18. 18.
    Wirth, N.: Algorithms + Data Structures = Programs. Englewood Cliffs (N.Y.): Prentice-Hall 1976Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1979

Authors and Affiliations

  • F. L. Bauer
    • 1
  1. 1.Institut für Informatik der Technischen Universität MünchenMünchen 2Germany

Personalised recommendations