Advertisement

An Overview of the Ciao Multiparadigm Language and Program Development Environment and Its Design Philosophy

  • Manuel V. Hermenegildo
  • Francisco Bueno
  • Manuel Carro
  • Pedro López
  • José F. Morales
  • German Puebla
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5065)

Abstract

We describe some of the novel aspects and motivations behind the design and implementation of the Ciao multiparadigm programming system. An important aspect of Ciao is that it provides the programmer with a large number of useful features from different programming paradigms and styles, and that the use of each of these features can be turned on and off at will for each program module. Thus, a given module may be using e.g. higher order functions and constraints, while another module may be using objects, predicates, and concurrency. Furthermore, the language is designed to be extensible in a simple and modular way. Another important aspect of Ciao is its programming environment, which provides a powerful preprocessor (with an associated assertion language) capable of statically finding non-trivial bugs, verifying that programs comply with specifications, and performing many types of program optimizations. Such optimizations produce code that is highly competitive with other dynamic languages or, when the highest levels of optimization are used, even that of static languages, all while retaining the interactive development environment of a dynamic language. The environment also includes a powerful auto-documenter. The paper provides an informal overview of the language and program development environment. It aims at illustrating the design philosophy rather than at being exhaustive, which would be impossible in the format of a paper, pointing instead to the existing literature on the system.

Keywords

Logic Program Logic Programming Abstract Interpretation Abstract Machine Stable Model Semantic 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    ECMA 2008: ECMAscript Edition 4 Specification Wiki (2008), http://wiki.ecmascript.org
  2. 2.
    Aït-Kaci, H.: An Introduction to LIFE – Programming with Logic, Inheritance, Functions and Equations. In: Proceedings of the 1993 International Symposium on Logic Programming (1993)Google Scholar
  3. 3.
    Albert, E., Puebla, G., Hermenegildo, M.: Abstraction-Carrying Code. In: Baader, F., Voronkov, A. (eds.) LPAR 2004. LNCS (LNAI), vol. 3452, Springer, Heidelberg (2005)Google Scholar
  4. 4.
    Ancona, D., Ancona, M., Cuni, A., Matsakis, N.D.: RPython: a Step towards Reconciling Dynamically and Statically Typed OO Languages. In: DLS 2007: Proceedings of the 2007 Symposium on Dynamic Languages, pp. 53–64. ACM Press, New York (2007)CrossRefGoogle Scholar
  5. 5.
    Bueno, F., Cabeza, D., Carro, M., Hermenegildo, M., López-García, P., Puebla, G. (eds.): The Ciao System. Ref. Manual (v1.13). Technical report, C. S. School (UPM) (2006), http://www.ciaohome.org
  6. 6.
    Bueno, F., García de la Banda, M., Hermenegildo, M.: Effectiveness of Abstract Interpretation in Automatic Parallelization: A Case Study in Logic Programming. ACM TOPLAS 21(2), 189–238 (1999)CrossRefGoogle Scholar
  7. 7.
    Bueno, F., Debray, S.K., García de la Banda, M., Hermenegildo, M.: Transformation-based Implementation and Optimization of Programs Exploiting the Basic Andorra Model. Technical Report CLIP11/95.0, Facultad de Informática, UPM (May 1995)Google Scholar
  8. 8.
    Bueno, F., Deransart, P., Drabent, W., Ferrand, G., Hermenegildo, M., Maluszynski, J., Puebla, G.: On the Role of Semantic Approximations in Validation and Diagnosis of Constraint Logic Programs. In: Proc. of the 3rd. Int’l Workshop on Automated Debugging–AADEBUG 1997, Linköping, Sweden, May 1997, pp. 155–170. U.of Linköping Press (1997)Google Scholar
  9. 9.
    Bueno, F., Hermenegildo, M.: An Automatic Translation Scheme from Prolog to the Andorra Kernel Language. In: Proc. of the 1992 International Conference on Fifth Generation Computer Systems, Institute for New Generation Computer Technology (ICOT), vol. 2, pp. 759–769 (June 1992)Google Scholar
  10. 10.
    Bueno, F., Hermenegildo, M., Montanari, U., Rossi, F.: From Eventual to Atomic and Locally Atomic CC Programs: A Concurrent Semantics. In: Rodríguez-Artalejo, M., Levi, G. (eds.) ALP 1994. LNCS, vol. 850, pp. 114–132. Springer, Heidelberg (1994)Google Scholar
  11. 11.
    Bueno, F., Hermenegildo, M., Montanari, U., Rossi, F.: Partial Order and Contextual Net Semantics for Atomic and Locally Atomic CC Programs. Science of Computer Programming 30, 51–82 (1998); Special CCP 1995 Workshop issueCrossRefMathSciNetzbMATHGoogle Scholar
  12. 12.
    Bueno, F., López-García, P., Hermenegildo, M.: Multivariant Non-Failure Analysis via Standard Abstract Interpretation. In: Kameyama, Y., Stuckey, P.J. (eds.) FLOPS 2004. LNCS, vol. 2998, pp. 100–116. Springer, Heidelberg (2004)Google Scholar
  13. 13.
    Cabeza, D., Hermenegildo, M.: Extracting Non-strict Independent And-parallelism Using Sharing and Freeness Information. In: LeCharlier, B. (ed.) SAS 1994. LNCS, vol. 864, pp. 297–313. Springer, Heidelberg (1994)Google Scholar
  14. 14.
    Cabeza, D., Hermenegildo, M.: Distributed Concurrent Constraint Execution in the CIAO System. In: Proc. of the 1995 COMPULOG-NET Workshop on Parallelism and Implementation Technologies, Utrecht, NL, September 1995, U. Utrecht / T.U. Madrid (1995), http://www.cliplab.org/
  15. 15.
    Cabeza, D., Hermenegildo, M.: A New Module System for Prolog. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 131–148. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  16. 16.
    Cabeza, D., Hermenegildo, M.: The Ciao Modular, Standalone Compiler and Its Generic Program Processing Library. Special Issue on Parallelism and Implementation of (C)LP Systems 30(3); ENTCS. Elsevier - North Holland (March 2000)Google Scholar
  17. 17.
    Cabeza, D., Hermenegildo, M.: Distributed WWW Programming using (Ciao-)Prolog and the PiLLoW Library. Theory and Practice of Logic Programming 1(3), 251–282 (2001)CrossRefGoogle Scholar
  18. 18.
    Carro, M., Gómez, L., Hermenegildo, M.: Some Paradigms for Visualizing Parallel Execution of Logic Programs. In: 1993 International Conference on Logic Programming, pp. 184–201. MIT Press, Cambridge (June 1993)Google Scholar
  19. 19.
    Carro, M., Morales, J., Muller, H.L., Puebla, G., Hermenegildo, M.: High-Level Languages for Small Devices: A Case Study. In: Flautner, K., Kim, T. (eds.) Compilers, Architecture, and Synthesis for Embedded Systems, pp. 271–281. ACM Press, Sheridan (October 2006)Google Scholar
  20. 20.
    Cartwright, R., Fagan, M.: Soft Typing. In: Programming Language Design and Implementation (PLDI 1991), SIGPLAN, pp. 278–292. ACM, New York (1991)CrossRefGoogle Scholar
  21. 21.
    Casas, A., Cabeza, D., Hermenegildo, M.: A Syntactic Approach to Combining Functional Notation, Lazy Evaluation and Higher-Order in LP Systems. In: Hagiya, M., Wadler, P. (eds.) FLOPS 2006. LNCS, vol. 3945. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  22. 22.
    Casas, A., Carro, M., Hermenegildo, M.: Annotation Algorithms for Unrestricted Independent And-Parallelism in Logic Programs. In: 17th International Symposium on Logic-based Program Synthesis and Transformation (LOPSTR 2007), The Technical University of Denmark, August 2007. LNCS, vol. 4915, pp. 138–153. Springer, Heidelberg (2007)Google Scholar
  23. 23.
    Casas, A., Carro, M., Hermenegildo, M.: Towards a High-Level Implementation of Execution Primitives for Non-restricted, Independent And-parallelism. In: Warren, D.S., Hudak, P. (eds.) 10th International Symposium on Practical Aspects of Declarative Languages (PADL 2008). LNCS, vol. 4902, pp. 230–247. Springer, Heidelberg (2008)CrossRefGoogle Scholar
  24. 24.
    Chen, W., Warren, D.S.: Tabled Evaluation with Delaying for General Logic Programs. Journal of the ACM 43(1), 20–74 (1996)CrossRefMathSciNetzbMATHGoogle Scholar
  25. 25.
    The Ciao Development Team. The Ciao Multiparadigm Language and Program Development Environment, The ALP Newsletter 19(3). The Association for Logic Programming (November 2006), http://www.logicprogramming.org/newsletter/nov06/index.html
  26. 26.
    Correas, J., Gomez, J.M., Carro, M., Cabeza, D., Hermenegildo, M.: A Generic Persistence Model for CLP Systems (And Two Useful Implementations). In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 104–119. Springer, Heidelberg (2004)Google Scholar
  27. 27.
    Cousot, P., Cousot, R.: Abstract Interpretation: a Unified Lattice Model for Static Analysis of Programs by Construction or Approximation of Fixpoints. In: Proc. of POPL 1977, pp. 238–252 (1977)Google Scholar
  28. 28.
    Cox, B.J.: Object Oriented Programming: An Evolutionary Approach. Addison Wesley (1991), http://developer.apple.com/documentation/Cocoa/Conceptual/ObjectiveC/ObjC.pdf
  29. 29.
    de Guzmán, P.C., Carro, M., Hermenegildo, M., Silva, C., Rocha, R.: An Improved Continuation Call-Based Implementation of Tabling. In: Warren, D.S., Hudak, P. (eds.) 10th International Symposium on Practical Aspects of Declarative Languages (PADL 2008). LNCS, vol. 4902, pp. 198–213. Springer, Heidelberg (2008)Google Scholar
  30. 30.
    García de la Banda, M., Bueno, F., Hermenegildo, M.: Towards Independent And-Parallelism in CLP. In: Kuchen, H., Swierstra, S.D. (eds.) PLILP 1996. LNCS, vol. 1140, pp. 77–91. Springer, Heidelberg (1996)Google Scholar
  31. 31.
    García de la Banda, M., Hermenegildo, M., Marriott, K.: Independence in CLP Languages. ACM Transactions on Programming Languages and Systems 22(2), 269–339 (2000)CrossRefGoogle Scholar
  32. 32.
    Debray, S.K., Lin, N.W.: Cost analysis of logic programs. TOPLAS 15(5) (1993)Google Scholar
  33. 33.
    Debray, S.K., Lin, N.-W., Hermenegildo, M.: Task Granularity Analysis in Logic Programs. In: Proc. PLDI 1990, June 1990, pp. 174–188. ACM Press, New York (1990)CrossRefGoogle Scholar
  34. 34.
    Debray, S.K., López-García, P., Hermenegildo, M., Lin, N.-W.: Lower Bound Cost Estimation for Logic Programs. In: 1997 International Logic Programming Symposium, pp. 291–305. MIT Press, Cambridge (1997)Google Scholar
  35. 35.
    Debray, S.K., López-García, P., Hermenegildo, M., Lin, N.-W.: Lower Bound Cost Estimation for Logic Programs. In: ILPS 1997. MIT Press, Cambridge (1997)Google Scholar
  36. 36.
    Debray, S.K., López-García, P., Hermenegildo, M.: Non-Failure Analysis for Logic Programs. In: ICLP 1997, pp. 48–62. MIT Press, Cambridge (1997)Google Scholar
  37. 37.
    Debray, S.K., López-García, P., Hermenegildo, M., Lin, N.-W.: Estimating the Computational Cost of Logic Programs. In: LeCharlier, B. (ed.) SAS 1994. LNCS, vol. 864, pp. 255–265. Springer, Heidelberg (1994)Google Scholar
  38. 38.
    El-Khatib, O., Pontelli, E., Son, T.C.: Integrating an Answer Set Solver into Prolog: ASP-PROLOG. In: LPNMR, pp. 399–404 (2005)Google Scholar
  39. 39.
    Frühwirth, T.: Theory and Practice of Constraint Handling Rules. Journal of Logic Programming, Special Issue on Constraint Logic Programming 37(1-3) (October 1998)Google Scholar
  40. 40.
    Gelfond, M., Lifschitz, V.: The Stable Model Semantics for Logic Programming. In: International Conference on Logic Programming 1988, pp. 1070–1080 (1988)Google Scholar
  41. 41.
    Gupta, G., Pontelli, E., Ali, K., Carlsson, M., Hermenegildo, M.: Parallel Execution of Prolog Programs: a Survey. ACM Transactions on Programming Languages and Systems 23(4), 472–602 (2001)CrossRefGoogle Scholar
  42. 42.
    Haridi, S., Franzén, N.: The Oz Tutorial. DFKI (February 2000), http://www.mozart-oz.org
  43. 43.
    Henderson, F., Somogyi, Z., Conway, T.: Determinism Analysis in the Mercury Compiler. In: Proc. Australian Computer Science Conference, Melbourne, Australia, pp. 337–346 (January 1996)Google Scholar
  44. 44.
    Hermenegildo, M.: An Abstract Machine for Restricted AND-parallel Execution of Logic Programs. In: Shapiro, E. (ed.) ICLP 1986. LNCS, vol. 225, pp. 25–40. Springer, Heidelberg (1986)Google Scholar
  45. 45.
    Hermenegildo, M.: Automatic Parallelization of Irregular and Pointer-Based Computations: Perspectives from Logic and Constraint Programming. In: Lengauer, C., Griebl, M., Gorlatch, S. (eds.) Euro-Par 1997. LNCS, vol. 1300, pp. 31–46. Springer, Heidelberg (1997)CrossRefGoogle Scholar
  46. 46.
    Hermenegildo, M.: A Documentation Generator for (C)LP Systems. In: Palamidessi, C., Moniz Pereira, L., Lloyd, J.W., Dahl, V., Furbach, U., Kerber, M., Lau, K.-K., Sagiv, Y., Stuckey, P.J. (eds.) CL 2000. LNCS (LNAI), vol. 1861, pp. 1345–1361. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  47. 47.
    Hermenegildo, M., Albert, E., López-García, P., Puebla, G.: Some Techniques for Automated, Resource-Aware Distributed and Mobile Computing in a Multi-Paradigm Programming System. In: Danelutto, M., Vanneschi, M., Laforenza, D. (eds.) Euro-Par 2004. LNCS, vol. 3149, pp. 21–37. Springer, Heidelberg (2004)Google Scholar
  48. 48.
    Hermenegildo, M., Bueno, F., Cabeza, D., Carro, M., García de la Banda, M., López-García, P., Puebla, G.: The CIAO Multi-Dialect Compiler and System: An Experimentation Workbench for Future (C)LP Systems. In: Parallelism and Implementation of Logic and Constraint Logic Programming, Nova Science, Commack, NY, USA, pp. 65–85 (April 1999)Google Scholar
  49. 49.
    Hermenegildo, M.: The Ciao Development Team. Why Ciao? –An Overview of the Ciao System’s Design Philosophy. Technical Report CLIP7/2006.0, Technical University of Madrid (UPM), School of Computer Science, UPM (December 2006), http://cliplab.org/papers/ciao-philosophy-note-tr.pdf
  50. 50.
    Hermenegildo, M.: The CLIP Group. In: Borning, A. (ed.) PPCP 1994. LNCS, vol. 874, pp. 123–133. Springer, Heidelberg (1994)Google Scholar
  51. 51.
    Hermenegildo, M., Greene, K.: The &-Prolog System: Exploiting Independent And-Parallelism. New Generation Computing 9(3,4), 233–257 (1991)CrossRefGoogle Scholar
  52. 52.
    Hermenegildo, M., Puebla, G., Bueno, F.: Using Global Analysis, Partial Specifications, and an Extensible Assertion Language for Program Validation and Debugging. In: The Logic Programming Paradigm: a 25–Year Perspective, pp. 161–192. Springer, Heidelberg (1999)Google Scholar
  53. 53.
    Hermenegildo, M., Puebla, G., Bueno, F., López-García, P.: Integrated Program Debugging, Verification, and Optimization Using Abstract Interpretation (and The Ciao System Preprocessor). Science of Computer Programming 58(1–2), 115–140 (2005)CrossRefMathSciNetzbMATHGoogle Scholar
  54. 54.
    Hermenegildo, M., Rossi, F.: Strict and Non-Strict Independent And-Parallelism in Logic Programs: Correctness, Efficiency, and Compile-Time Conditions. Journal of Logic Programming 22(1), 1–45 (1995)CrossRefMathSciNetzbMATHGoogle Scholar
  55. 55.
    Hermenegildo, M., Warren, R., Debray, S.K.: Global Flow Analysis as a Practical Compilation Tool. Journal of Logic Programming 13(4), 349–367 (1992)CrossRefGoogle Scholar
  56. 56.
    Holzbaur, C.: Metastructures vs. Attributed Variables in the Context of Extensible Unification. In: Bruynooghe, M., Wirsing, M. (eds.) PLILP 1992. LNCS, vol. 631, pp. 260–268. Springer, Heidelberg (1992)CrossRefGoogle Scholar
  57. 57.
    Holzbaur, C.: SICStus 2.1/DMCAI Clp 2.1.1 User’s Manual. University of Vienna (1994)Google Scholar
  58. 58.
    Hudak, P., Peyton-Jones, S., Wadler, P., Boutel, B., Fairbairn, J., Fasel, J., Guzman, M.M., Hammond, K., Hughes, J., Johnsson, T., Kieburtz, D., Nikhil, R., Partain, W., Peterson, J.: Report on the Programming Language Haskell. Haskell Special Issue, ACM Sigplan Notices 27(5) (1992)Google Scholar
  59. 59.
    Hudak, P., Hughes, J., Jones, S.P., Wadler, P.: A History of Haskell: Being Lazy with Class. In: HOPL III: Proceedings of the third ACM SIGPLAN conference on History of programming languages, pp. 1–55. ACM Press, New York (2007)Google Scholar
  60. 60.
    Jim, T., Morrisett, J.G., Grossman, D., Hicks, M.W., Cheney, J., Wang, Y.: Cyclone: A safe dialect of c. In: Ellis, C.S. (ed.) USENIX Annual Technical Conference, General Track, pp. 275–288. USENIX (2002)Google Scholar
  61. 61.
    Karp, A.H., Babb, R.C.: A Comparison of 12 Parallel Fortran Dialects. IEEE Software (September 1988)Google Scholar
  62. 62.
    Leavens, G.T., Leino, K.R.M., Müller, P.: Specification and verification challenges for sequential object-oriented programs. Formal Asp. Comput. 19(2), 159–189 (2007)CrossRefzbMATHGoogle Scholar
  63. 63.
    López-García, P., Bueno, F., Hermenegildo, M.: Determinacy Analysis for Logic Programs Using Mode and Type Information. In: Bruynooghe, M. (ed.) LOPSTR 2004. LNCS, vol. 3018, pp. 19–35. Springer, Heidelberg (2004)Google Scholar
  64. 64.
    López-García, P., Hermenegildo, M.: Efficient Term Size Computation for Granularity Control. In: Proc. of ICLP 1995 (1995)Google Scholar
  65. 65.
    López-García, P., Hermenegildo, M., Debray, S.K.: A Methodology for Granularity Based Control of Parallelism in Logic Programs. J. of Symbolic Computation, Special Issue on Parallel Symbolic Computation 21, 715–734 (1996)Google Scholar
  66. 66.
    López-García, P., Hermenegildo, M., Debray, S.K.: Towards Granularity Based Control of Parallelism in Logic Programs. In: Proc. of First International Symposium on Parallel Symbolic Computation, PASCO 1994 (1994)Google Scholar
  67. 67.
    Mera, E., López-García, P., Puebla, G., Carro, M., Hermenegildo, M.: Combining Static Analysis and Profiling for Estimating Execution Times. In: Hanus, M. (ed.) PADL 2007. LNCS, vol. 4354, Springer, Heidelberg (2006)Google Scholar
  68. 68.
    Montanari, U., Rossi, F., Bueno, F., García de la Banda, M., Hermenegildo, M.: Towards a Concurrent Semantics-based Analysis of CC and CLP. In: Principles and Practice of Constraint Programming, vol. 874, pp. 151–161. Springer, Heidelberg (1994)Google Scholar
  69. 69.
    Morales, J., Carro, M., Hermenegildo, M.: Improving the Compilation of Prolog to C Using Moded Types and Determinism Information. In: Jayaraman, B. (ed.) PADL 2004. LNCS, vol. 3057, pp. 86–103. Springer, Heidelberg (2004)Google Scholar
  70. 70.
    Mozilla. Tamarin Project (2008), http://www.mozilla.org/projects/tamarin/
  71. 71.
    Muthukumar, K., Bueno, F., García de la Banda, M., Hermenegildo, M.: Automatic Compile-time Parallelization of Logic Programs for Restricted, Goal-level, Independent And-parallelism. Journal of Logic Programming 38(2), 165–218 (1999)CrossRefMathSciNetzbMATHGoogle Scholar
  72. 72.
    Muthukumar, K., Hermenegildo, M.: Complete and Efficient Methods for Supporting Side Effects in Independent/Restricted And-parallelism. In: 1989 International Conference on Logic Programming, pp. 80–101. MIT Press, Cambridge (1989)Google Scholar
  73. 73.
    Muthukumar, K., Hermenegildo, M.: Determination of Variable Dependence Information at Compile-Time Through Abstract Interpretation. In: 1989 North American Conference on Logic Programming, pp. 166–189. MIT Press, Cambridge (1989)Google Scholar
  74. 74.
    Muthukumar, K., Hermenegildo, M.: The CDG, UDG, and MEL Methods for Automatic Compile-time Parallelization of Logic Programs for Independent And-parallelism. In: Int’l. Conference on Logic Programming, pp. 221–237. MIT Press, Cambridge (1990)Google Scholar
  75. 75.
    Muthukumar, K., Hermenegildo, M.: Combined Determination of Sharing and Freeness of Program Variables Through Abstract Interpretation. In: ICLP (1991)Google Scholar
  76. 76.
    Muthukumar, K., Hermenegildo, M.: Compile-time Derivation of Variable Dependency Using Abstract Interpretation. JLP 13(2/3), 315–347 (1992)CrossRefzbMATHGoogle Scholar
  77. 77.
    Navas, J., Mera, E., López-García, P., Hermenegildo, M.: User-definable resource bounds analysis for logic programs. In: Dahl, V., Niemelä, I. (eds.) ICLP 2007. LNCS, vol. 4670. Springer, Heidelberg (2007)CrossRefGoogle Scholar
  78. 78.
    Necula, G.C., Condit, J., Harren, M., McPeak, S., Weimer, W.: CCured: type-safe retrofitting of legacy software. ACM Trans. Program. Lang. Syst. 27(3), 477–526 (2005)CrossRefGoogle Scholar
  79. 79.
    Olmedilla, M., Bueno, F., Hermenegildo, M.: Automatic Exploitation of Non-Determinate Independent And-Parallelism in the Basic Andorra Model. In: Logic Program Synthesis and Transformation, 1993. Workshops in Computing, pp. 177–195. Springer, Heidelberg (1993)Google Scholar
  80. 80.
    Pineda, A., Bueno, F.: The O’Ciao Approach to Object Oriented Logic Programming. In: Colloquium on Implementation of Constraint and LOgic Programming Systems (ICLP associated workshop), Copenhagen (July 2002)Google Scholar
  81. 81.
    Puebla, G., Albert, E., Hermenegildo, M.: Abstract Interpretation with Specialized Definitions. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  82. 82.
    Puebla, G., Bueno, F., Hermenegildo, M.: An Assertion Language for Constraint Logic Programs. In: Deransart, P., Małuszyński, J. (eds.) DiSCiPl 1999. LNCS, vol. 1870, pp. 23–61. Springer, Heidelberg (2000)CrossRefGoogle Scholar
  83. 83.
    Puebla, G., García de la Banda, M., Marriott, K., Stuckey, P.: Optimization of Logic Programs with Dynamic Scheduling. In: 1997 International Conference on Logic Programming, June 1997, pp. 93–107. MIT Press, Cambridge (1997)Google Scholar
  84. 84.
    Puebla, G., Hermenegildo, M.: Implementation of Multiple Specialization in Logic Programs. In: Proc. of PEPM 1995, pp. 77–87. ACM Press, New York (1995)CrossRefGoogle Scholar
  85. 85.
    Puebla, G., Hermenegildo, M.: Abstract Multiple Specialization and its Application to Program Parallelization. JLP 41(2&3), 279–316 (1999)CrossRefMathSciNetzbMATHGoogle Scholar
  86. 86.
    Rigo, A., Pedroni, S.: PyPy’s Approach to Virtual Machine Construction. In: Dynamic Languages Symposium 2006. ACM Press, New York (2006)Google Scholar
  87. 87.
    Saglam, H., Gallagher, J.: Approximating constraint logic programs using polymorphic types and regular descriptions. Technical Report CSTR-95-17, Department of Computer Science, University of Bristol, Bristol BS8 1TR (1995)Google Scholar
  88. 88.
    Schrijvers, T.: Analyses, Optimizations and Extensions of Constraint Handling Rules. PhD thesis, K.U.Leuven, Belgium (June 2005)Google Scholar
  89. 89.
    Somogyi, Z., Henderson, F., Conway, T.: The Execution Algorithm of Mercury: an Efficient Purely Declarative Logic Programming Language. JLP 29(1–3) (October 1996)Google Scholar
  90. 90.
    Warren, D.H.D.: Logic Programming Languages, Parallel Implementations, and the Andorra Model. Invited talk, slides presented at ICLP 1993 (1993)Google Scholar
  91. 91.
    Warren, R., Hermenegildo, M., Debray, S.K.: On the Practicality of Global Flow Analysis of Logic Programs. In: Fifth International Conference and Symposium on Logic Programming, pp. 684–699. MIT Press, Cambridge (1988)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2008

Authors and Affiliations

  • Manuel V. Hermenegildo
    • 1
  • Francisco Bueno
    • 1
  • Manuel Carro
    • 1
  • Pedro López
    • 1
  • José F. Morales
    • 1
  • German Puebla
    • 1
  1. 1.IMDEA Institute for Software Development TechnologyUniversidad Politécnica de Madrid, University of New Mexico, Universidad Complutense de Madrid 

Personalised recommendations