Abstract
Imperative higher-order languages are a highly expressive programming medium. Compared to functional programming languages, they permit the construction of safe and modular programs. However, functional languages have a simple reduction semantics, which makes it easy to evaluate program pieces in parallel. In order to overcome this dilemma, we construct a conservative extension of the λ-calculus that can deal with control and assignment facilities. This calculus simultaneously provides an algebraic reasoning system and an elegant reduction semantics of higher-order imperative languages. We show that the evaluation of applications can still take advantage of parallelism and that the major cost of these evaluations stems from the necessary communication for substitutions. Since this is also true for functional languages, we conjecture that if a successful parallel evaluation scheme for functional languages is possible, then the same strategy will also solve the problem of parallel evaluations for imperative programming languages.
Preview
Unable to display preview. Download preview PDF.
References
Backus, J. Can programming be liberated from the von Neumann style? A functional style and its algebra of programs, Comm. ACM21(8), 613–641.
Barendregt, H.P.The Lambda Calculus: Its Syntax and Semantics, North-Holland, Amsterdam, 1981.
Clinger, W.D., D.P. Friedman, M. Wand. A scheme for a higher-level semantic algebra, in Algebraic Methods in Semantics, J. Reynolds, M. Nivat (Eds.), 1985, 237–250.
Dennis, J.B. Programming generality, parallelism and computer architectures, Information Processing68, 1969, 484–492.
Felleisen, M., D.P. Friedman, B. Duba, J. Merrill. Beyond continuations, Technical Report No 216, Indiana University Computer Science Department, 1987.
Felleisen, M., D.P. Friedman. Control operators, the SECD-machine, and the λ-calculus, Formal Description of Programming Concepts III, North-Holland, Amsterdam, 1986, to appear.
Felleisen, M., D.P. Friedman. A calculus for assignments in higher-order languages, Proc. 14th ACM Symp. Principles of Programming Languages, 1987, 314–325.
Felleisen, M. Reflections on Landin's J-operator: a partly historical note, Computer Languages, 1987, to appear.
Friedman, D.P., C.T. Haynes, E. Kohlbecker. Programming with continuations, in Program Transformations and Programming Environments, P. Pepper (Ed.), Springer-Verlag, 1985, 263–274.
Haynes, C.T., D.P. Friedman, M. Wand. Obtaining coroutines from continuations, Computer Languages11(3/4), 1986, 143–153.
Haynes, C. T. Logic continuations, Proc. Third International Conf. Logic Programming, London, Springer-Verlag, 1986, 671–685; also to appear in Journal of Logic Programming, 1987.
Henson, M.C., R. Turner. Completion semantics and interpreter generation, Proc. 9th ACM Symp. Principles of Programming Languages, 1982, 242–254.
Kohlbecker, E, M. Wand. Macro-by-example: deriving syntactic transformations from their specifications, Proc. 14th ACM Symp. Principles of Programming Languages, 1987, 77–85.
Landin, P.J. The next 700 programming languages, Comm. ACM9(3), 1966, 157–166.
Landin, P. J. An abstract machine for designers of computing languages, Proc. IFIP Congress, 1965, 438–439.
Landin, P.J. The mechanical evaluation of expressions, Computer Journal6(4), 1964, 308–320.
Magó, G.A. A network of microprocessors to execute reduction languages, Int. Journal of Computer and Information Sciences8, 1979, 349–385; 435–471.
Mason, I. A.The Semantics of Destructive Lisp, Ph.D. dissertation, Stanford University, 1986.
Plotkin, G.D. A structural approach to operational semantics, Technical Report DAIMI FN-19, Aarhus University, Computer Science Department, 1981.
Plotkin, G.D. Call-by-name, call-by-value, and the λ-calculus, Theoretical Computer Science1, 1975, 125–159.
Reynolds, J.C. Definitional interpreters for higher-order programming languages, Proc. ACM Annual Conference, 1972, 717–740.
Reynolds, J.C. GEDANKEN—A simple typeless language based on the principle of completeness and the reference concept, Comm. ACM13(5), 1970, 308–319.
Sussman G.J., G. Steele. Scheme: An interpreter for extended lambda calculus, Memo 349, MIT AI-Lab, 1975.
Talcott, C.The Essence of Rum—A Theory of the Intensional and Extensional Aspects of Lisptype Computation, Ph.D. dissertation, Stanford University, 1985.
Wand, M., D.P. Friedman. Compiling lambda-expressions using continuations and factorizations, Computer Languages3, 1978, 241–263.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1987 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Felleisen, M., Friedman, D.P. (1987). A reduction semantics for imperative higher-order languages. In: de Bakker, J.W., Nijman, A.J., Treleaven, P.C. (eds) PARLE Parallel Architectures and Languages Europe. PARLE 1987. Lecture Notes in Computer Science, vol 259. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-17945-3_12
Download citation
DOI: https://doi.org/10.1007/3-540-17945-3_12
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-17945-0
Online ISBN: 978-3-540-47181-3
eBook Packages: Springer Book Archive