2005
DOI: 10.1007/11431664_7
|View full text |Cite
|
Sign up to set email alerts
|

A Virtual Machine for Functional Logic Computations

Abstract: Abstract.We describe the architecture of a virtual machine for executing functional logic programming languages. A distinguishing feature of our machine is that it preserves the operational completeness of non-deterministic programs by concurrently executing a pool of independent computations. Each computation executes only root-needed sequential narrowing steps. We describe the machine's architecture and instruction set, and show how to compile overlapping inductively sequential programs to sequences of machi… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
2

Citation Types

0
19
0

Year Published

2006
2006
2021
2021

Publication Types

Select...
7

Relationship

5
2

Authors

Journals

citations
Cited by 20 publications
(19 citation statements)
references
References 18 publications
0
19
0
Order By: Relevance
“…In the introduction we already discussed the various efforts to implement functional logic languages, like the construction of abstract machines [9,27,32] and the compilation into Prolog [5] or Haskell [13,15,16]. Our benchmarks show that an efficient implementation by compiling into a functional language depends on carefully handling the sharing of non-deterministic choices.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…In the introduction we already discussed the various efforts to implement functional logic languages, like the construction of abstract machines [9,27,32] and the compilation into Prolog [5] or Haskell [13,15,16]. Our benchmarks show that an efficient implementation by compiling into a functional language depends on carefully handling the sharing of non-deterministic choices.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
“…One possible approach is the design of new abstract machines appropriately supporting these operational features and implementing them in some (typically, imperative) language, like C [32] or Java [9,27]. Another approach is the reuse of already existing implementations of some of these features by translating functional logic programs into either logic or functional languages.…”
Section: Introductionmentioning
confidence: 99%
“…In contrast to our approach, however, KiCS provides sharing of deterministic expressions across non-deterministic computations [7]. Regarding (c), sharing across non-determinism is also provided by FLVM, the abstract machine described in [5], which is implemented in Java. The FLVM has undergone substantial changes from the implementation described in [5], and can still be considered to be in an experimental state.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
“…Regarding (c), sharing across non-determinism is also provided by FLVM, the abstract machine described in [5], which is implemented in Java. The FLVM has undergone substantial changes from the implementation described in [5], and can still be considered to be in an experimental state. Finally, the MCC [18] is based on an abstract machine implemented in C. The MCC provides a programatic approach to support different search strategies, i.e., the Curry programmer can influence the search strategy by calling primitive operators provided in this system.…”
Section: Conclusion and Related Workmentioning
confidence: 99%
See 1 more Smart Citation