Abstract
In this paper, we present a fast binding-time analysis (BTA) by integrating a size-change analysis, which is independent of a selection rule, into a classical BTA for offline partial evaluation of logic programs. In contrast to previous approaches, the new BTA is conceptually simpler and considerably faster, scaling to medium-sized or even large examples and, moreover, it ensures both the so called local and global termination. We also show that through the use of selective hints, we can achieve both good specialisation results and a fast BTA and specialisation process.
This work has been partially supported by the EU (FEDER) and the Spanish MEC/MICINN under grants TIN2005-09207-C03-02, TIN2008-06622-C03-02, and DAAD PPP D/06/12830 together with Acción Integrada HA2006-0008.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Albert, E., Puebla, G., Gallagher, J.: Non-Leftmost Unfolding in Partial Deduction of Logic Programs with Impure Predicates. In: Hill, P.M. (ed.) LOPSTR 2005. LNCS, vol. 3901, pp. 115–132. Springer, Heidelberg (2006)
Apt, K.R.: Introduction to logic programming. In: van Leeuwen, J. (ed.) Handbook of Theoretical Computer Science, ch. 10, pp. 495–574. North-Holland, Amsterdam (1990)
Codish, M., Taboch, C.: A Semantic Basis for the Termination Analysis of Logic Programs. Journal of Logic Programming 41(1), 103–123 (1999)
Craig, S.-J., Gallagher, J., Leuschel, M., Henriksen, K.S.: Fully Automatic Binding Time Analysis for Prolog. In: Etalle, S. (ed.) LOPSTR 2004. LNCS, vol. 3573, pp. 53–68. Springer, Heidelberg (2005)
Craig, S.-J.: Practicable Prolog Specialisation. PhD thesis, University of Southampton, U.K. (June 2005)
Gómez-Zamalloa, M., Albert, E., Puebla, G.: Improving the decompilation of java bytecode to prolog by partial evaluation. Electr. Notes Theor. Comput. Sci. 190(1), 85–101 (2007)
Henriksen, K.S., Gallagher, J.P.: Abstract interpretation of pic programs through logic programming. In: SCAM, pp. 184–196. IEEE Computer Society, Los Alamitos (2006)
Jones, N.D., Gomard, C.K., Sestoft, P.: Partial Evaluation and Automatic Program Generation. Prentice-Hall, Englewood Cliffs (1993)
Leuschel, M., Bruynooghe, M.: Logic Program Specialisation through Partial Deduction: Control Issues. Theory and Practice of Logic Programming 2(4-5), 461–515 (2002)
Leuschel, M., Craig, S.-J., Bruynooghe, M., Vanhoof, W.: Specialising Interpreters Using Offline Partial Deduction. In: Bruynooghe, M., Lau, K.-K. (eds.) Program Development in Computational Logic. LNCS, vol. 3049, pp. 340–375. Springer, Heidelberg (2004)
Leuschel, M., Jørgensen, J., Vanhoof, W., Bruynooghe, M.: Offline Specialisation in Prolog using a Hand-Written Compiler Generator. Theory and Practice of Logic Programming 4(1-2), 139–191 (2004)
Leuschel, M., Tamarit, S., Vidal, G.: Improving size-change analysis in offline partial evaluation. In: Arenas, P., Zanardini, D. (eds.) WLPE (2008)
Leuschel, M.: The ECCE partial deduction system and the dppd library of benchmarks (1996-2002), http://www.ecs.soton.ac.uk/~mal
Leuschel, M., Craig, S.-J., Elphick, D.: Supervising offline partial evaluation of logic programs using online techniques. In: Puebla, G. (ed.) LOPSTR 2006. LNCS, vol. 4407, pp. 43–59. Springer, Heidelberg (2007)
Leuschel, M., Martens, B., De Schreye, D.: Controlling generalisation and polyvariance in partial deduction of normal logic programs. ACM Transactions on Programming Languages and Systems 20(1), 208–258 (1998)
Lindenstrauss, N., Sagiv, Y.: Automatic Termination Analysis of Logic Programs. In: Proc. ICLP 1997, pp. 63–77. MIT Press, Cambridge (1997)
Lloyd, J.W.: Foundations of Logic Programming. Springer, Heidelberg (1987)
Vidal, G.: Quasi-Terminating Logic Programs for Ensuring the Termination of Partial Evaluation. In: Proc. PEPM 2007, pp. 51–60. ACM Press, New York (2007)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2009 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Leuschel, M., Vidal, G. (2009). Fast Offline Partial Evaluation of Large Logic Programs. In: Hanus, M. (eds) Logic-Based Program Synthesis and Transformation. LOPSTR 2008. Lecture Notes in Computer Science, vol 5438. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-00515-2_9
Download citation
DOI: https://doi.org/10.1007/978-3-642-00515-2_9
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-00514-5
Online ISBN: 978-3-642-00515-2
eBook Packages: Computer ScienceComputer Science (R0)