ACM Home Page
Please provide us with feedback. Feedback
Functional programing and the logical variable
Full text PdfPdf (1.15 MB)
Source Annual Symposium on Principles of Programming Languages archive
Proceedings of the 12th ACM SIGACT-SIGPLAN symposium on Principles of programming languages table of contents
New Orleans, Louisiana, United States
Pages: 266 - 280  
Year of Publication: 1985
ISBN:0-89791-147-4
Author
Gary Lindstrom  Department of Computer Science, University of Utah, Salt Lake City, Utah
Sponsors
SIGACT: ACM Special Interest Group on Algorithms and Computation Theory
SIGPLAN: ACM Special Interest Group on Programming Languages
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 9,   Downloads (12 Months): 30,   Citation Count: 13
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/318593.318657
What is a DOI?

ABSTRACT

Logic programming offers a variety of computational effects which go beyond those customarily found in functional programming languages. Among these effects is the notion of the “logical variable.” i.e. a value determined by the intersection of constraints, rather than by direct binding. We argue that this concept is “separable” from logic programming, and can sensibly be incorporated into existing functional languages. Moreover, this extension appears to significantly widen the range of problems which can efficiently be addressed in function form, albeit at some loss of conceptual purity. In particular, a form of side-effects arises under this extension, since a function invocation can exert constraints on variables shared with other function invocations. Nevertheless, we demonstrate that determinacy can be retained, even under parallel execution. The graph reduction language FGL is used for this demonstration, by being extended to a language FGL+LV permitting formal parameter expressions, with variables occurring therein bound by unification. The determinacy argument is based on a novel dataflow-like rendering of unification. In addition the complete partial order employed in this proof is unusual in its explicit representation of demand, a necessity given the “benign” side-effects that arise. An implementation technique is suggested, suitable for reduction architectures.


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
[1] H. Abramson. Unification-Based Conditional Binding Constructs. In Proc. First International Logic Programming Conference. Marseille, 1982.
 
2
[2] H. Abramson. A Prological Definition of HASL, a Purely Functional Language with Unification Based on Conditional Binding Expressions. New Generation Computing 2:3-35, 1984.
 
3
[3] Department of Computer Sciences, Chalmers University of Technology, Aspenas, Sweden. Symposium on Functional Languages and Computer Architecture, Laboratory on Programming Methodology, 1981.
 
4
[4] R. Barbuti, M. Bellia, G. Levi and M. Martelli. On the Integration of Logic Programming and Functional Programming. In D. DeGroot (editor), International Symposium on Logic Programming, pages 160-166. IEEE, Atlantic City. N. J., February, 1984.
5
 
6
[6] J. A. Goguen and J. Meseguer. Equality, Types, Modules and Generics for Logic Programming. In Sten-Ake Tarnlund (editor), Second International Logic Programming Conference, pages 114-125. Uppsata University, Uppsala, Sweden, July, 1984.
 
7
[7] S. Haridi. Logic Programming Based on a Natural Deduction System. PhD thesis, Royai Inst. of Tech., 1981.
 
8
[8] K. Kahn. The Implementation of Uniform -- a Knowledge-Representation/Programming Language Based on Equivalence of Descriptions. In ECAI. Orsay, France, 1982.
 
9
[9] R. M. Keller. G. Lindstrom, and S. Patil. A Loosely-Coupled Applicative Multi-Processing System. In AFIPS Conference Proceedings, pages 613-622. June, 1979.
 
10
[10] R. M. Keller, B. Jayaraman, D. Rose, G. Lindstrom. FGL (Function Graph Language) Programmers' Guide. Technical Report AMPS Technical Memorandum No. 1, University of Utah, Computer Science Department, July. 1980.
 
11
[11] R. M. Keller. Semantics and Applications of Function Graphs. Technical Report UUCS-80-112. University of Utah, Computer Science Department, 1980.
 
12
[12] R. M. Keller and G. Lindstrom. Hierarchical Analysis of a Distributed Evaluator In Proc. International Conference on Parallel Processing, pages 299-310. August, 1980.
 
13
[13] R. M. Keller. FEL (Function Equation Language) Programmer's Guide. Technical Report 7, University of Utah, Department of Computer Science, AMPS Technical Memorandum, 1982.
 
14
[14] R. M. Keller, G. Lindstrom. E. Organick. Rediflow: A Multiprocessing Architecture Combining Reduction and Data-Flow. In PAW 83: Visuals used at the Parallel Architecture Workshop. Department of Energy, Office of Basic Energy Sciences, University of Colorado, Boulder, January, 1983.
 
15
[15] R. M. Keller, F. C. H. Lin. and J. Tanaka. Rediflow Multiprocessing. In IEEE Compcon '84, pages 410-417. Feb., 1984.
 
16
[16] G. Lindstrom and R. Wagner. Incremental Recomputation on Data-Flow Graphs. In Symposium on Functional Languages and Computer Archtecture. pages 472-489. Department of Computer Sciences, Chalmers University of Technology. Aspenas. Sweden, June, 1981.
 
17
[17] G. Lindstrom and F. E. Hunt Consistency and Currency In Functional Databases In Proc. Infocom 83, pages 352-361 IEEE. San Diego, April, 1983.
 
18
[18] G. Lindstrom and P. Panangaden. Stream-based execution of logic programs. In Proc. 1984 Int'l. Symp. on Logic Programming, pages 168-176. February, 1984.
 
19
[19] G. Lindstrom. OR-parallelism on applicative architectures. In Sten-Ake Tarnlund (editor), Proc. Second International Logic Programming Conference, pages 159-170. Uppsala University. July, 1984.
 
20
[20] U. S. Reddy. On the Relationship Between Functional and Logic Languages. In D. DeGroot and G. Lindstrom (editors). Logic and Functional Programming. Prentice Hall, 1985 To appear.
 
21
[21] J. A. Robinson and E. E. Sibert. Loglisp: an alternative to Prolog. In Hayes, Michie, and Pao (editors), Machine Intelligence. pages 399-419. Ellis Horwood, 1982.
 
22
[22] E. Y. Shapiro. A Subset of Concurrent Prolog and its Interpreter. Technical Report TR-003, Institute for New Generation Computer Technology, January. 1983.
23
 
24
[24] P. A. Subrahmanyam and J.-H. You. Conceptual Basis and Evaluation Strategies for Integrating Functional and Logical Programming. In D. DeGroot (editor), International Symposium on Logic Programming. IEEE, Atlantic City, N.J., February, 1984.

CITED BY  13