Abstract
This paper presents a technique for compiling a Horn-clause program intended for exhaustive search into a GHC (Guarded Horn Clauses) program. The technique can be viewed also as a transformation technique for Prolog programs which compiles away the ‘bagof’ primitive and non-determinate bindings. The class of programs to which our technique is applicable is shown with a static checking algorithm; it is nontrivial and could be extended. An experiment on a compiler-based Prolog system showed that our technique improved the efficiency of exhaustive search by 6 times for a permutation generator program. This compilation technique is important also in that it exploits the AND-parallelism of GHC for parallel search.
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Bowen, D. L. (ed.), Byrd, L., Pereira, F. C. N., Pereira, L. M. and Warren, D. H. D. [1983] DECsystem-10 Prolog User's Manual. Dept. of Artificial Intelligence, Univ. of Edinburgh.
Carlsson, M. [1984] On Implementing Prolog in Functional Programming. In Proc. 1984 Int. Symp. on Logic Programming, IEEE Computer Society, pp. 154–159.
Ciepielewski, A. and Haridi, S. [1983] A Formal Model for OR-Parallel Execution of Logic Programs. In Proc. IFIP '83, Mason, R. E. A. (ed.), Elsevier Science Publishers B. V., Amsterdam, pp. 299–305.
Clark, K. L. and Gregory, S. [1984a] PARLOG: Parallel Programming in Logic. Research Report DOC 84/4, Dept. of Computing, Imperial College of Science and Technology, London.
Clark, K. L. and Gregory, S. [1984b] Notes on the Implementation of PARLOG. Research Report DOC 84/16, Dept. of Computing, Imperial College of Science and Technology, London, 1984. Also in J. of Logic Programming, Vol. 2, No. 1 (1985), pp. 17–42.
Hirakawa, H., Chikayama, T. and Furukawa, K. [1984] Eager and Lazy Enumerations in Concurrent Prolog. In Proc. Second Int. Logic Programming Conf., Uppsala Univ., Sweden, pp. 89–100.
Lloyd, J. W. [1984] Foundations of Logic Programming. Springer-Verlag, Berlin Heidelberg New York Tokyo.
Naish, L. [1985] All Solutions Predicates in Prolog. In Proc. 1985 Symp. on Logic Programming, IEEE Computer Society, pp. 73–77.
Shapiro, E. Y. [1983] A Subset of Concurrent Prolog and Its Interpreter. Tech. Report TR-003, Institute for New Generation Computer Technology, Tokyo.
Ueda, K. [1985] Guarded Horn Clauses. ICOT Tech. Report TR-103, Institute for New Generation Computer Technology. Also to appear in Lecture Notes in Computer Science, Springer-Verlag, Berlin Heidelberg (1986).
Ueda, K. [1986] Guarded Horn Clauses. Doctoral Thesis, Information Engineering Course, Faculty of Engineering, Univ. of Tokyo.
Ueda, K. and Chikayama, T. [1985] Concurrent Prolog Compiler on Top of Prolog. In Proc. 1985 Symp. on Logic Programming, IEEE Computer Society, pp. 119–126.
Warren, D. H. D. [1982] Higher-order extensions to PROLOG: are they needed? In Machine Intelligence 10, Hayes, J. E., Mitchie, D. and Pao, Y.-H. (ed.), Ellis Horwood, Chichester, England, pp. 441–454.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1986 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Ueda, K. (1986). Making exhaustive search programs deterministic. In: Shapiro, E. (eds) Third International Conference on Logic Programming. ICLP 1986. Lecture Notes in Computer Science, vol 225. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16492-8_81
Download citation
DOI: https://doi.org/10.1007/3-540-16492-8_81
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-16492-0
Online ISBN: 978-3-540-39831-8
eBook Packages: Springer Book Archive