Abstract
Data flow has sometimes been proposed as an evaluation mechanism for applicative languages, its focus on data dependency and the pure functional nature of certain models can make it an attractive choice. Few machines have been built however, and those that have fall short of being ideal general-purpose applicative language computers. This paper will present a particularly simple data flow model which is similar to supercombinator reduction, supporting higher order functions, garbage collection and a form of lazy evaluation in a clear and natural manner.
The paper will also show how the model can be made to execute on a conventional processor. Such a method has shown significant speed increases over other available methods of evaluating functional programs, and the hardware implementation holds the promise of a machine that executes applicative languages at a comparable speed to conventional hardware executing control flow programs. In addition, unlike other proposed models, the extensions to a multi-processor machine are natural and well defined, with the potential of even greater speedups.
The work reported in this paper was carried out at: Department of Computing, Westfield College London and then King's College London
Chapter PDF
6 References
Burstall, R.M., MacQueen, D.B. and Sanella, D.T., HOPE: An Experimental Applicative Language, Proc. 1980 Lisp Conference, Stanford 1980.
Curry, H.B. and Feys, R., Combinatory Logic, Volume 1, North-Holland 1968.
French, E.F. and Glaser, H.W., TUKI. A Data Flow Processor, Computer Architecture News 11, 1, 12–18 (March 1983).
Glaser, H.W. and Thompson, P., Lazy Garbage Collection, Westfield College, Internal Report.
Hankin, C.L., A Data Flow Model of Parallel Processing, Department of Computer Science, Westfield College, University of London, Aug. 1979, Ph.D. Thesis.
Hankin, C.L. and Glaser H.W., The Data Flow Programming Language CAJOLE — An Informal Introduction, ACM SIGPLAN Notices 16, 7, 35–44 (July 1981).
Hughes, J., Graph Reduction with Supercombinators, PRG-28, Programming Research Group, Oxford University, 1982.
Johnsson, T. The G-Machine: An Abstract Machine for Graph Reduction, Proceedings of the Declarative Programming Workshop, University College London, April 1983.
Kahn, G., The Semantics of a Simple Language for Parallel Programming, Information Processing 1974 (IFIP 74), North-Holland, 1974.
Mycroft, A., Polymorphic Type Schemes and Recursive Definitions, Proc. 6th. International Conference on Programming, Toulouse (Springer-Verlag LNCS 167) April 1984.
Treleaven, P.C., Brownbridge, D.R. and Hopkins, R.P. Data-Driven and Demand-Driven Computer Architecture, Computing Surveys 14, 1, (March 1982).
Turner, D.A., A New Implementation Technique for Applicative Languages, Software — Practice and Experience 9, 1, 31–49 (Jan. 1979).
Turner, D.A., Miranda: A Non-Strict Functional Language with Polymorphic Types, Proc. Conference on Functional Programming and Computer Architectures (Springer-Verlag LNCS 201) 1984.
Vegdahl, S.R., A Survey of Proposed Architectures for the Execution of Functional Languages, IEEE Transactions on Computers, C-33, 12 (Dec. 1984).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1986 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Glaser, H., Hayes, S. (1986). Another implementation technique for applicative languages. In: Robinet, B., Wilhelm, R. (eds) ESOP 86. ESOP 1986. Lecture Notes in Computer Science, vol 213. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16442-1_5
Download citation
DOI: https://doi.org/10.1007/3-540-16442-1_5
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-16442-5
Online ISBN: 978-3-540-39782-3
eBook Packages: Springer Book Archive