ACM Home Page
Please provide us with feedback. Feedback
Pattern driven lazy reduction: A unifying evaluation mechanism for functional and logic programs
Full text PdfPdf (554 KB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 11th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
Salt Lake City, Utah, United States
Pages: 228 - 234  
Year of Publication: 1984
ISBN:0-89791-125-3
Authors
P. A. Subrahmanyam  Department of Computer Science, University of Utah, Salt Lake City, Utah
J-H. You  Department of Computer Science, University of Utah, Salt Lake City, Utah
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGADA: ACM Special Interest Group on Ada Programming Language
SIGAPL: ACM Special Interest Group on APL Programming Language
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 4,   Downloads (12 Months): 18,   Citation Count: 3
Additional Information:

abstract   references   cited by   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/800017.800534
What is a DOI?

ABSTRACT

A novel lazy evaluation mechanism, pattern-driven lazy reduction, is developed that serves as a unifying evaluation mechanism for both functional and logic programs. The reduction of a function call can be viewed as “semantically” unifying the function call with the left hand side of a defining equation, and applying the unifier to the right hand side. Lazy reduction is achieved by the pattern which the function call matches against. Function reductions are actually “driven” by patterns in this sense. It is shown that this evaluation mechanism works well for both functional programs and logic programs that involve “executable” functions. As a result, logic programs can be enhanced with (1) the availability of a functional computing environment where there is no notion of backtracking, thus alleviating the degree of control difficulties typically encountered in logic programs, and (2) the ability to terminate “infinite computations” without the introduction of complex control issues at the user-level. On the other hand, functional programs can be equipped with the power of logic programming languages, e.g., Prolog.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

1
 
2
R. M.Burstall and D.T. Sannella. HOPE User's Manual. Dept. of Computer Science, University of Edinburgh, Edinburgh, Scotland, 1980.
3
 
4
 
5
M. H.van Emden. Programming with resolution logic. Machine Intelligence 8, London, 1978, pp. 266-299.
 
6
D. P.Friedman and D.S. Wise. CONS should not Evaluate Its Arguments. Automata, Languages and Programming, Edinburgh, 1976.
 
7
The Utah Symbolic Computation Group. The Portable Standard Lisp Users Manual. 3.1 edition, Dept. of Computer Science, University of Utah, 1983.
 
8
A. Hansson, S.Haridi and S.-A. Tarnlund. Properties of a logic programming language. Logic programming, New York, 1982, pp. 267-280.
 
9
 
10
Robert M.Keller. Semantics and applications of function graphs. Tech. Rept. UUCS-8-112, University of Utah, Dept. of Computer Science, October, 1980.
 
11
Bill Kornfeld. Equality for Prolog. 8th International Joint Conference on Artificial Intelligence, Karlsruhe, West Germany, August, 1983.
 
12
R.A.Kowalski. Predicate logic as a programming language. Proceeding of IFIP 74, 74, pp. 556-574.
13
 
14
Luis Moniz Pereira, Fernando C N Pereira and David H.D. Warren. User's Guide to DECsystem-10 Prolog. 1978.
 
15
16
 
17
J. A.Robinson and E.E. Sibert. Logic programming in Lisp. School of Computer and Information Science, Syracuse University, December, 1980.
 
18
D.A.Turner. SASL Language Manual. University of St. Andrews, 1979.
19


Collaborative Colleagues:
P. A. Subrahmanyam: colleagues
J-H. You: colleagues