TIM: A simple, lazy abstract machine to execute supercombinators
Proc. of a conference on Functional programming languages and computer architecture
Extending SLD resolution to equational horn clauses using E-unification
Journal of Logic Programming
The spineless tagless G-machine
FPCA '89 Proceedings of the fourth international conference on Functional programming languages and computer architecture
Warren's abstract machine: a tutorial reconstruction
Warren's abstract machine: a tutorial reconstruction
Feature-constraint logics for unification grammars
Journal of Logic Programming
Logic programming with functions and predicates: the language Babel
Journal of Logic Programming
Higher-order equational logic programming
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
POPL '94 Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Go¨del programming language
The Go¨del programming language
A bibliography on garbage collection and related topics
ACM SIGPLAN Notices
Native code compilation in SICStus Prolog
Proceedings of the eleventh international conference on Logic programming
Efficient compilation of lazy evaluation
SIGPLAN '84 Proceedings of the 1984 SIGPLAN symposium on Compiler construction
The Definition of Standard ML
Graph-based Implementation of a Functional Logic Langugage
ESOP '90 Proceedings of the 3rd European Symposium on Programming
A Complete Narrowing Calculus for Higher-Order Functional Logic Programming
PLILPS '95 Proceedings of the 7th International Symposium on Programming Languages: Implementations, Logics and Programs
Compiling Logic Programs with Equality
PLILP '90 Proceedings of the 2nd International Workshop on Programming Language Implementation and Logic Programming
CAMEL: An Extension of the Categorial Abstract Machine to Compile Functional/Logic Programs
PLILP '92 Proceedings of the 4th International Symposium on Programming Language Implementation and Logic Programming
From Reduction Machines To Narrowing Machines
TAPSOFT '91 Proceedings of the International Joint Conference on Theory and Practice of Software Development, Volume 2: Advances in Distributed Computing (ADC) and Colloquium on Combining Paradigms for Software Developmemnt (CCPSD)
FCG: A Code Generator for Lazy Functional Languages
CC '92 Proceedings of the 4th International Conference on Compiler Construction
Efficient Implementation of Narrowing and Rewriting
PDK '91 Proceedings of the International Workshop on Processing Declarative Knowledge
Canonical Forms and Unification
Proceedings of the 5th Conference on Automated Deduction
Lazy Narrowing in a Graph Machine
Proceedings of the Second International Conference on Algebraic and Logic Programming
An Abstract Machine Based System for a Lazy Narrowing Calculus
FLOPS '01 Proceedings of the 5th International Symposium on Functional and Logic Programming
An implementation of narrowing strategies
Proceedings of the 3rd ACM SIGPLAN international conference on Principles and practice of declarative programming
A virtual machine for functional logic computations
IFL'04 Proceedings of the 16th international conference on Implementation and Application of Functional Languages
Hi-index | 0.00 |
Current implementation techniques for functional languages differ considerably from those for logic languages. This complicates the development of flexible and efficient abstract machines that can be used for the compilation of declarative languages combining concepts of functional and logic programming. We propose an abstract machine, called the JUMP-machine, which systematically integrates the operational concepts needed to implement the functional and logic programming paradigm. The use of a tagless representation for heap objects, which originates from the Spineless Tagless G-machine, supports the integration of different concepts. In this paper, we provide a functional logic kernel language and show how to translate it into the abstract machine language of the JUMP-machine. Furthermore, we define the operational semantics of the machine language formally and discuss the mapping of the abstract machine to concrete machine architectures. We tested the approach by writing a compiler for the functional logic language GTML. The obtained performance results indicate that the proposed method allows to implement functional logic languages efficiently.