A General Framework for Lazy Functional Logic Programming

From Simple Sci Wiki
Revision as of 15:52, 24 December 2023 by SatoshiNakamoto (talk | contribs) (Created page with "Title: A General Framework for Lazy Functional Logic Programming Research Question: How can we develop a logical framework that supports lazy functional logic programming, non-determinism, and polymorphic datatype definitions while maintaining a clear semantics? Methodology: The authors propose a general framework for first-order functional logic programming. They support lazy functions, non-determinism, and polymorphic datatype definitions based on a set of C-based re...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Title: A General Framework for Lazy Functional Logic Programming

Research Question: How can we develop a logical framework that supports lazy functional logic programming, non-determinism, and polymorphic datatype definitions while maintaining a clear semantics?

Methodology: The authors propose a general framework for first-order functional logic programming. They support lazy functions, non-determinism, and polymorphic datatype definitions based on a set of C-based rewriting rules and a notion of model. They use equational logic as a basis for their semantics but argue that it is not suitable for their purposes. Instead, they present an alternative logic that includes C-based rewriting calculi and a notion of model.

Results: They provide soundness and completeness for C-based rewriting with respect to models, existence of free models for all programs, and type preservation results. They also develop a sound and complete goal-solving procedure based on lazy narrowing with unification modulo C.

Implications: This framework is quite expressive and can be used for solving action and change problems or realizing the GAMMA computational model. It provides a logical semantics for programs that integrates functions and predicates, making it suitable for multiparadigm declarative programming.

Link to Article: https://arxiv.org/abs/0404050v1 Authors: arXiv ID: 0404050v1