Abstract
Side-effects are forbidden in applicative languages like Prolog [3], FP [2], pure Lisp [9], and SISAL [8]. Algorithms can often be reformulated applicatively with no loss of efficiency. It is not known whether this is always the case. Here are seven problems which have been resistant to efficient reformulation. The reader is invited to produce an efficient applicative program or lower-bound argument for any of these.
- [1] Aho, A. V., Hopcroft, J. E., and Ullman, J. D., The Design and Analysis of Computer Algorithms, Addison-Wesley, Reading, Ma., 1974. Google ScholarDigital Library
- [2] Backus, J. Can Programming be Liberated from the von Neumann Style? A Functional Style and Its Algebra of Programs. CACM 21: 8(Aug. 1978), 613-641. Google ScholarDigital Library
- [3] Clocksin, W. F. and Mellish, C. S. Programming in Prolog. Springer-Verlag, New York (1981). Google ScholarDigital Library
- [4] Cohen, S., Multi-Version Structures in Prolog, in: Proc. International Conference on Fifth Generation Computer Systems. Tokyo, Japan, 1984. pp. 265-274.Google Scholar
- [5] Huddleston, S. and Mehlhorn, K., A New Data Structure for Representing Sorted Lists, Acta Informatica 17:157-184 (1982).Google ScholarDigital Library
- [6] Knuth, D. E., The Art of Computer Programming: Volume 1 - Fundamental Algorithms (second edition), Addison-Wesley, Reading, Ma., 1973. Google ScholarDigital Library
- [7] Knuth, D. E., The Art of Computer Programming: Volume 3 - Sorting and Searching, Addison-Wesley, Reading, Ma., 1973. Google ScholarDigital Library
- [8] McGraw, J. et. al. SISAL: Streams and Iteration in a Single-Assignment Language (Language Reference Manual). Lawrence Livermore Laboratory/University of California at Davis Tech Report M-146 (July 1983).Google Scholar
- [9] Pratt, T. W. Programming Languages: Design and Implementation. Prentice-Hall, Inc., Englewood cliffs, N.J. (1984). Google ScholarDigital Library
- [10] Warren, D. H. D. Implementing Prolog - Compiling Logic Programs 1 and 2. DAI Research Reports 39 and 40, University of Edinburgh, Edinburgh, Scotland, 1977.Google Scholar
- [11] Warren, D. H. D. An Abstract Prolog Instruction Set. Technical Note 309 AI Center, SRI International (1983).Google Scholar
Index Terms
- Are applicative languages inefficient?
Recommendations
The semantic elegance of applicative languages
FPCA '81: Proceedings of the 1981 conference on Functional programming languages and computer architectureIn what does the alleged superiority of applicative languages consist? In the last analysis the answer must be in terms of the reduction in the time required to produce a correct program to solve a given problem. On reflection I decided that the best ...
DI: an interactive debugging interpreter for applicative languages
The DI interpreter is both a debugger and interpreter of SISAL programs. Its use as a program interpreter is only a small part of its role; it is designed to be a tool for studying compilation techniques for applicative languages. DI interprets dataflow ...
DI: an interactive debugging interpreter for applicative languages
SIGPLAN '87: Papers of the Symposium on Interpreters and interpretive techniquesThe DI interpreter is both a debugger and interpreter of SISAL programs. Its use as a program interpreter is only a small part of its role; it is designed to be a tool for studying compilation techniques for applicative languages. DI interprets dataflow ...
Comments