Advertisement

Reduction languages and reduction systems

  • Werner Kluge
  • Claudia Schmittgen
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 272)

Abstract

This paper gives an overview over reduction languages and a machine and system concept which directly supports the execution of reduction language programs. Following a brief introduction into the idea of functional programming, we address in some detail three reduction language approaches (λ-expression, combinators and combining forms) and a concept for non-sequential program execution based on a recursive partitioning scheme for λ-expressions. We also discuss the organization and operating principles of a sequential reduction machine and of a system of several cooperating reduction machines.

Key words

reduction languages reduction machines non-sequential program execution 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Abrams, P.S.: ‘An APL Machine'; Technical Report No. 3, Dissertation, Stanford University, California, February 1970Google Scholar
  2. [2]
    Backus, J.: ‘Reduction Languages and Variable-Free Programming'; IBM Research Report RJ 1010, April 7, 1973Google Scholar
  3. [3]
    Backus, J.: ‘Programming Language Semantics and Closed Applicative Languages'; San José, California, IBM Research Report RJ 1245, July 5, 1973Google Scholar
  4. [4]
    Backus, J.: ‘Programming Language Semantics and Closed Applicative Languages'; ACM Symposium on Principles of Programming Languages, Boston, Masachusetts, October 1–3, 1973, pp. 71–86Google Scholar
  5. [5]
    Backus, J.: ‘Can Programming Be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs'; CACM, Vol. 21, No. 8, August 1978, pp. 613–641Google Scholar
  6. [6]
    Backus, J.: ‘The Algebra of Functional Programs: Function Level Reasoning, Linear Equations and Extended Definitions'; in: Formalization of Programming Concepts, International Colloquium, Peniscola, Spain, April 1981, LNCS 107, Edited by J. Diaz and I. Ramos, Springer-Verlag, ISBN 3-540-10699-5, pp. 1–43Google Scholar
  7. [7]
    Barendregt, H.P.: ‘The Lambda Calculus'; 2nd Edition, North-Holland Co., Amsterdam, 1984Google Scholar
  8. [8]
    Berkling, K.J.: ‘A Computing Machine Based on Tree Structure'; IEEE Transactions on Computers, Vol. C-20, No. 4, 1971, pp. 404–418Google Scholar
  9. [9]
    Berkling, K.J.: ‘Reduction Languages for Reduction Machines'; Proceedings of the 2nd Annual Symposium on Computer Architecture, January 20–22, 1975, ACM/IEEE 75CH0916-7C, pp. 133–140Google Scholar
  10. [10]
    Berkling, K.J.: ‘Reduction Languages for Reduction Machines'; Internal Report GMD ISF-76-8, D-5205 Sankt Augustin 1, West Germany, September 14, 1976Google Scholar
  11. [11]
    Berkling, K.J.: ‘A Symmetric Complement to the Lambda Calculus'; Internal Report GMD ISF-76-7, D-5205 Sankt Augustin 1, West Germany, September 14, 1976Google Scholar
  12. [12]
    Berkling, K.J.: ‘Computer Architecture for Correct Programming'; Proceedings of the 5th Annual Symposium on Computer Architecture, IEEE New York, 1978Google Scholar
  13. [13]
    Berkling, K.J.: ‘Headorder Reduction: A Graph Reduction Scheme for the Operational Lambda Calculus'; CASE Center, Syracuse University, Syracuse, NY 13244-1190, November 1986Google Scholar
  14. [14]
    Berkling, K.J.; Fehr, E.: ‘A Modification of the Lambda-Calculus as a Base for Functional Programming Languages'; 9th International Colloquium on Automata, Languages and Programming (ICALP 82), Aarhus, Denmark, July 12–16, 1982, LNCS 140, Edited by M. Nielson and E.M. Schmidt, Springer-Verlag, ISBN 3-540-11576-5, pp. 35–47Google Scholar
  15. [15]
    Berkling, K.J.; Fehr, E.: ‘A Consistent Extension of the Lambda-Calculus as a Base for Functional Programming Languages'; Information and Control, Academic Press New York, Vol. 55, Nos. 1–3, October/November/December 1982Google Scholar
  16. [16]
    Burge, W.H.: ‘Recursive Programming Techniques'; The Systems Programming Series, Addison-Wesley Publishing Co., Reading, Massachusetts, 1975Google Scholar
  17. [17]
    Burton, F.W.; Sleep, M.R.: ‘Executing Functional Programs on a Virtual Tree of Processors'; Proceedings of the ACM Conference on Functional Programming Languages and Computer Architecture, October 18–22, 1981, Wentworth-by-the-Sea, Portsmouth, New Hampshire, pp. 187–194Google Scholar
  18. [18]
    Church, A.: ‘The Calculi of Lambda Conversion'; Annals of Mathematics Studies, No. 6, Princeton, University Press, 1941Google Scholar
  19. [19]
    Curry, H.B.; Feys, R.: 'Combinatory Logic'; Vol. I, North-Holland Publishing Co., Amsterdam, The Netherlands, 1958Google Scholar
  20. [20]
    Darlington, J.; Reeve, M.: ‘ALICE — A Multiprocessor Reduction Machine for the Parallel Evaluation of Applicative Languages'; Proceedings of the ACM Conference on Functional Programming Languages and Computer Architecture, October 18–22, 1981, Wentworth-by-the-Sea, Portsmouth, New Hampshire, pp. 65–75Google Scholar
  21. [21]
    De Bruijn, N.G.: ‘Lambda-Calculus Notation with Nameless Dummies. A Tool for Automatic Formula Manipulation with Application to the Church-Rosser-Theorem'; Indagationes Mathematicae 34, 1972, pp. 381–392Google Scholar
  22. [22]
    Friedman, D.P.; Wise, D.S.: ‘Aspects of Applicative Programming for Parallel Processing'; IEEE Transactions on Computers, Vol. C-27, No. 4, 1978, pp. 289–296Google Scholar
  23. [23]
    Gerdts, A.; Kowalewski, D.: ‘First Experiences with an Emulation of a System of Cooperating Reduction Machines'; Proceedings of the International Conference on High-Level Language Computer Architecture, Los Angeles, California, May 1984Google Scholar
  24. [24]
    Giloi, W.K.: ‘Programmieren in APL'; de Gruyter Lehrbuch, 1977Google Scholar
  25. [25]
    Giloi, W.K.; Berg, H.K.: 'sTARLET—An Unorthodox Concept of a String/Array Computer'; Information Processing 74, North-Holland Co., 1974Google Scholar
  26. [26]
    Giloi, W.K.; Berg, H.K.: 'sTARLET and the APL Machines'; Informatik-Fachberichte (GI), Band 4, Computer Architecture Workshop of the GI, Edited by W. Händler, Erlangen, May 1975, pp. 47–78Google Scholar
  27. [27]
    Giloi, W.K.; Berg, H.K.: ‘Data Structure Architectures — A Major Operational Principle'; Proceedings of the 5th Annual Symposium on Computer Architecture, IEEE New York, 1978Google Scholar
  28. [28]
    Giloi, W.K.; Güth, R.: ‘Concepts and Realization of a High-Performance Data Type Architecture'; International Journal of Computer and Information Science, Vol. 11, No. 1, 1982Google Scholar
  29. [29]
    Giloi, W.K.; Güth, R.; Kallerhoff,R.: ‘Hierarchical Function Distribution — A Design Principle for Advanced HLLAC's'; CAMP Report 82–06, Technische Universität Berlin, June 1982Google Scholar
  30. [30]
    Güth, R.: ‘Entwurf einer Datentypenarchitektur'; PhD. Thesis, Fachbereich 20 Informatik, Technische Universität Berlin, 1982Google Scholar
  31. [31]
    Henderson, P.: ‘Functional Programming: Application and Implementation'; Prentice Hall International, London, 1980, ISBN 0-13-331579-7Google Scholar
  32. [32]
    Henderson, P.; Morris, J.H.: ‘A Lazy Evaluator'; Conference Record of the 3rd ACM Symposium on Principles of Programming Languages, January 1976, pp. 95–103Google Scholar
  33. [33]
    Hindley, J.R.: ‘Combinatory Reductions and Lambda Reductions Compared'; Zeitschrift für Mathematische Logik 23, 1977, pp. 169–180Google Scholar
  34. [34]
    Hindley, J.R.: ‘Combinatory Reduction'; Proceedings of the 1st Autumn Workshop on Reduction Machines, Ustica, Italy, September 1985Google Scholar
  35. [35]
    Hindley, J.R.; Seldin, J.P.: ‘Introduction to Combinators and λ-Calculus'; London Mathematical Society Students Texts 1, Cambridge University Press, 1986Google Scholar
  36. [36]
    Hommes, F.: 'simulation einer Reduktionsmaschine'; Master-Thesis, Mathematisches Institut, University of Bonn, April 1975Google Scholar
  37. [37]
    Hommes, F.: ‘The Internal Structure of the Reduction Machine'; GMD ISF-77-3, D-5205 Sankt Augustin 1, West Germany, March 1977Google Scholar
  38. [38]
    Hommes, F.: ‘The Heap/Substitution Concept — An Implementation of Functional Operations on Data Structures for a Reduction Machine'; Proceedings of the of the 9th Annual Symposium on Computer Architecture, Austin, Texas, April 26–29, 1982, ISSN 0149-7111, IEEE 82CH1754-1, pp. 248–256Google Scholar
  39. [39]
    Hughes, R.J.M.: 'super-Combinators'; Conference Record of the ACM Symposium on LISP and Functional Programming, Pittsburgh, Pennsylvania, August 15–18, 1982, pp. 1–10Google Scholar
  40. [40]
    Iverson, K.E.: ‘A Programming Language'; Wiley, New York, 1962Google Scholar
  41. [41]
    Klop, J.W.: ‘Combinatory Reduction Systems'; PhD. Thesis, Tract 129, Mathematical Center, Kruislaan 413, Amsterdam, 1980Google Scholar
  42. [42]
    Klop, J.W.: ‘Term Rewriting Systems'; Proceedings of the 1st Autumn Workshop on Reduction Machines, Ustica, Italy, September 1985Google Scholar
  43. [43]
    Kluge, W.E.: ‘The Architecture of the Reduction Machine Hardware Model'; GMD ISF-79-3, D-5205 Sankt Augustin 1, West Germany, August 1979Google Scholar
  44. [44]
    Kluge, W.E.: ‘Cooperating Reduction Machines'; IEEE Transactions on Computers, Vol. C-32, No. 11, 1983, pp. 1002–1012Google Scholar
  45. [45]
    Kluge, W.E.: ‘A Concept for Cooperating Reduction Machines'; Proceedings of the 2nd International Workshop on High-Level Language Computer Architecture, Fort Lauderdale, Florida, December 13–17, 1983Google Scholar
  46. [46]
    Kluge, W.; Schlütter, H.: ‘An Architecture for Direct Execution of Reduction Languages'; Proceedings of the International Workshop on High-Level Language Computer Architecture, Fort Lauderdale, Florida, May 27–28, 1980Google Scholar
  47. [47]
    Schmittgen, C.: ‘A Data Type Architecture for Reduction Machines'; Arbeitspapiere der GMD 152, D-5205 Sankt Augustin 1, West Germany, May 1985Google Scholar
  48. [48]
    Schmittgen, C.: ‘A Data Type Architecture for Reduction Machines'; Proceedings of the 19th Hawaii International Conference on System Sciences, Vol. I, 1986, pp. 78–87Google Scholar
  49. [49]
    Schmittgen, C.: 'spezifikation der Architektur und Realisierung eines Reduktionssystems mit konsequenter Unterstützung strukturierter Datenobjekte und n-stelliger definierter Funktionen'; PhD. Thesis, Fachbereich 20 Informatik, Technische Universität Berlin, 1986Google Scholar
  50. [50]
    Schmittgen, C.; Gerdts, A.; Haumann, J.; Kluge, W.; Woitass, M.: ‘A System-Supported Workload Balancing Scheme for Cooperating Reduction Machines'; Arbeitspapiere der GMD 157, D-5205 Sankt Augustin 1, West Germany, June 1985Google Scholar
  51. [51]
    Schmittgen, C.; Gerdts, A.; Haumann, J.; Kluge, W.; Woitass, M.: ‘A System-Supported Workload Balancing Scheme for Cooperating Reduction Machines'; Proceedings of the 19th Hawaii International Conference on System Sciences, Vol. I, 1986, pp. 67–77Google Scholar
  52. [52]
    Schmittgen, C.; Kluge, W.E.: ‘A System Architecture for the Concurrent Evaluation of Applicative Programm Expressions'; Conference Proceedings of the 10th Annual Symposium on Computer Architecture, Stockholm, Sweden, June 13–17, 1983, ACM 0149-7111, pp. 356–362Google Scholar
  53. [53]
    Schönfinkel, M.: ‘Über die Bausteine der mathematischen Logik'; Mathematische Annalen 92, 1924, pp. 305–316Google Scholar
  54. [54]
    Turner, D.A.: 'sASL Language Manual'; Saint Andrews University, Technical Report, December 1976Google Scholar
  55. [55]
    Turner, D.A.: ‘A New Implementation Technique for Applicative Languages'; Software Practice and Experience, Vol. 9, 1979, pp. 31–49Google Scholar
  56. [56]
    Turner, D.A.: ‘The Semantic Elegance of Applicative Languages'; Proceedings of the ACM Conference on Functional Programming Languages and Computer Architecture, October 18–22, 1981, Wentworth-by-the-Sea, Portsmouth, New Hampshire, pp. 85–92Google Scholar
  57. [57]
    Turner, D.A.: ‘The Future of Applicative Programming, Trends in Information Processing Systems'; Proceedings of the 3rd Conference of the European Cooperation in Informatics, Munich, October 20–22, 1981, LNCS 123, Edited by A.J.W. Duijvestijn and P.C. Lockemann, Springer-Verlag, ISBN 3-540-10885-8, pp. 334–348Google Scholar
  58. [58]
    Turner, D.A.: ‘Recursive Equations as a Programming Language'; in: Functional Programming and Its Application, Edited by J. Darlington, P. Henderson and D.A. Turner, Cambridge University Press, 1982, pp. 1–28Google Scholar
  59. [59]
    Vegdahl, S.R.: ‘A Survey of Proposed Architectures for the Execution of functional Languages'; IEEE Transactions on Computers, Vol. C-33, No. 12, December 1984, pp.1050–1071Google Scholar
  60. [60]
    Wadsworth, C.P.: 'semantics and Pragmatics of the Lambda-Calculus'; PhD. Thesis, University of Oxford, 1971Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1987

Authors and Affiliations

  • Werner Kluge
    • 1
  • Claudia Schmittgen
    • 2
  1. 1.Department of Computer ScienceUniversity of KielKiel 1West Germany
  2. 2.Gesellschaft für Mathematik und Datenverarbeitung mbHSankt Augustin 1West Germany

Personalised recommendations