Skip to main content

A Virtual Machine for Functional Logic Computations

  • Conference paper
Implementation and Application of Functional Languages (IFL 2004)

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 3474))

Included in the following conference series:

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 machine instructions. The machine has been implemented in Java and in Standard ML.

This work was supported in part by the National Science Foundation under grants CCR-0110496 and CCR-0218224 and by the German Research Council (DFG) under grants Ha 2457/1-2 and Ha 2457/5-1.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Albert, E., Hanus, M., Huch, F., Oliver, J., Vidal, G.: Operational semantics for declarative multi-paradigm languages. Journal of Symbolic Computation (2005) (to appear)

    Google Scholar 

  2. Antoy, S.: Definitional trees. In: Kirchner, H., Levi, G. (eds.) ALP 1992. LNCS, vol. 632, pp. 143–157. Springer, Heidelberg (1992)

    Chapter  Google Scholar 

  3. Antoy, S.: Optimal non-deterministic functional logic computations. In: Hanus, M., Heering, J., Meinke, K. (eds.) ALP 1997 and HOA 1997. LNCS, vol. 1298, pp. 16–30. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  4. Antoy, S.: Constructor-based conditional narrowing. In: Proc. of the 3rd International Conference on Principles and Practice of Declarative Programming (PPDP 2001), Florence, Italy, pp. 199–206. ACM, New York (2001)

    Chapter  Google Scholar 

  5. Antoy, S.: Evaluation strategies for functional logic programming. Journal of Symbolic Computation (2005) (to appear)

    Google Scholar 

  6. Antoy, S., Echahed, R., Hanus, M.: A needed narrowing strategy. Journal of the ACM 47(4), 776–822 (2000)

    Article  MathSciNet  Google Scholar 

  7. Antoy, S., Hanus, M.: Compiling multi-paradigm declarative programs into Prolog. In: Kirchner, H. (ed.) FroCos 2000. LNCS, vol. 1794, pp. 171–185. Springer, Heidelberg (2000)

    Chapter  Google Scholar 

  8. Antoy, S., Hanus, M., Massey, B., Steiner, F.: An implementation of narrowing strategies. In: Proc. of the 3rd International ACM SIGPLAN Conference on Principles and Practice of Declarative Programming (PPDP 2001), pp. 207–217. ACM Press, New York (2001)

    Chapter  Google Scholar 

  9. Antoy, S., Johnson, S.: TeaBag: A functional logic language debugger. In: Proc. 13th International Workshop on Functional and (Constraint) Logic Programming (WFLP 2004), Aachen, Germany, pp. 4–18 (2004); Technical Report AIB-2004-05, RWTH Aachen

    Google Scholar 

  10. Chakravarty, M.M.T., Lock, H.C.R.: Towards the uniform implementation of declarative languages. Computer Languages 23(2-4), 121–160 (1997)

    Article  MATH  Google Scholar 

  11. González Moreno, J.C., López Fraguas, F.J., Hortalá González, M.T., Rodríguez Artalejo, M.: An approach to declarative programming based on a rewriting logic. The Journal of Logic Programming 40, 47–87 (1999)

    Article  MATH  Google Scholar 

  12. Hanus, M.: The integration of functions into logic programming: From theory to practice. Journal of Logic Programming 19, 20, 583–628 (1994)

    Article  MathSciNet  Google Scholar 

  13. Hanus, M.: A unified computation model for functional and logic programming. In: Proc. 24st ACM Symposium on Principles of Programming Languages (POPL 1997), pp. 80–93 (1997)

    Google Scholar 

  14. Hanus, M., Antoy, S., Engelke, M., Höppner, K., Koj, J., Niederau, P., Sadre, R., Steiner, F.: PAKCS: The Portland Aachen Kiel Curry System (2004), Available at, http://www.informatik.uni-kiel.de/~pakcs/

  15. Hanus, M., Prehofer, C.: Higher-order narrowing with definitional trees. Journal of Functional Programming 9(1), 33–75 (1999)

    Article  MATH  MathSciNet  Google Scholar 

  16. Hanus, M., Sadre, R.: An abstract machine for Curry and its concurrent implementation in Java. Journal of Functional and Logic Programming 1999(6) (1999)

    Google Scholar 

  17. Hanus, M., Steiner, F.: Controlling search in declarative programs. In: Palamidessi, C., Meinke, K., Glaser, H. (eds.) ALP 1998 and PLILP 1998. LNCS, vol. 1490, pp. 374–390. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  18. Hanus, M. (ed.): Curry: An integrated functional logic language (vers. 0.8) (2003), Available at, http://www.informatik.uni-kiel.de/~curry

  19. López-Fraguas, F., Sánchez-Hernández, J.: TOY: A Multiparadigm Declarative System. In: Narendran, P., Rusinowitch, M. (eds.) RTA 1999. LNCS, vol. 1631, pp. 244–247. Springer, Heidelberg (1999)

    Chapter  Google Scholar 

  20. Lux, W., Kuchen, H.: An efficient abstract machine for Curry. In: Beiersdörfer, K., Engels, G., Schäfer, W. (eds.) Informatik 1999 — Annual meeting of the German Computer Science Society (GI), pp. 390–399. Springer, Heidelberg (1999)

    Google Scholar 

  21. Middeldorp, A.: Call by need computations to root-stable form. In: Proc. 24th ACM Symposium on Principles of Programming Languages, Paris, pp. 94–105 (1997)

    Google Scholar 

  22. Tolmach, A., Antoy, S., Nita, M.: Implementing functional logic languages using multiple threads and stores. In: Proc. of the Ninth International Conference on Functional Programming (ICFP 2004), Snowbird, Utah, USA, pp. 90–102. ACM Press, New York (2004)

    Chapter  Google Scholar 

  23. Warren, D.H.D.: Higher-order extensions to PROLOG: are they needed? Machine Intelligence 10, 441–454 (1982)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Antoy, S., Hanus, M., Liu, J., Tolmach, A. (2005). A Virtual Machine for Functional Logic Computations. In: Grelck, C., Huch, F., Michaelson, G.J., Trinder, P. (eds) Implementation and Application of Functional Languages. IFL 2004. Lecture Notes in Computer Science, vol 3474. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11431664_7

Download citation

  • DOI: https://doi.org/10.1007/11431664_7

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-26094-3

  • Online ISBN: 978-3-540-32038-8

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics