|
ABSTRACT
Although the ability to simulate nondeterminism and to compute multiple solutions for a single query is a powerful and attractive feature of logic programming languages, it is expensive in both time and space. Since programs in such languages are very often functional, that is, they do not produce more than one distinct solution for a single input, this overhead is especially undesirable. This paper describes how programs may be analyzed statically to determine which literals and predicates are functional, and how the program may then be optimized using this information. Our notion of “functionality” subsumes the notion of “determinacy” that has been considered by various researchers. Our algorithm is less reliant on language features such as the cut, and thus extends more easily to parallel execution strategies, than others that have been proposed.
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
1
|
BRUYNOOGHE, M., AND PEREIRA, L. M. Deduction revision by intelligent backtracking. In Implementations of Prolog, J. A. Campbell, Ed. Ellis Horwood Ltd., Chichester, 1984, pp. 194-215.
|
| |
2
|
BUTLER, R., LUSK, E. L., OLSON, R., AND OVERBEEK, R.A. ANLWAM: A parallel implementation of the Warren abstract machine. Intern. Rep., Argonne National Laboratory, Chicago, Ill., 1986.
|
| |
3
|
CHANG, J., AND DESPAIN, A.M. Semi-intelligent backtracking of Prolog based on static data dependency analysis. In Proceedings of the 1985 Symposium on Logic Programming (Boston, Mass., Feb. 1985). IEEE, Washington, D.C., 1985, pp. 10-21.
|
| |
4
|
CLARK, $. r. Negation as failure. In Logic and Data Bases, H. Gallaire and J. Minker, Eds. Plenum, New York, 1978.
|
| |
5
|
|
| |
6
|
DEBRAY, S.K. The SB-Prolog system, version 2.3.2: A user manual. Tech. Rep. 87-15, Dept. of Computer Science, Univ. of Arizona, Tucson, Ariz., Dec. 1987. (Revised March 1988.)
|
| |
7
|
|
| |
8
|
|
| |
9
|
DEGROOT, D. Restricted AND-parallelism. In Proceedings of the International Conference on Fifth Generation Computer Systems ICOT, (Tokyo, 1984 ).
|
| |
10
|
DERANSART, P., AND MALUSZYNSKI, J. Relating logic programs and attribute grammars. J. Logic Program. 2, 2 (July 1985), 119-156.
|
| |
11
|
HAUSMAN, B., CIEPIELEWSKI, A., AND HARIDI, S. Or-parallel Prolog made efficient on shared memory multiproeessors. In Proceedings of the 1987 IEEE Symposium on Logic Programming (San Francisco, Calif., Aug. 1987). IEEE, New York, 191~7, pp. 69-79.
|
| |
12
|
|
| |
13
|
JONES, N. D., AND MYCROrT, A. Stepwise developmenL of operational and denotational semantics for PROLOG. In Proceedings of the 1984 Internatwnal Symposium on Logic Programming (Atlantic City, N.J., Feb. 6-9, 1984). IEEE, New York, ~.984, pp. 289-298.
|
| |
14
|
KALE, L. V. The REDUCE-OR process model for parallel evaluation of logic programs. In Proceedings of the 4th International Conference on Logi( Programming. (Melbourne, May 25-29, 1987). MIT Press, Cambridge, Mass., 1987, pp. 616-632
|
| |
15
|
|
| |
16
|
|
| |
17
|
MELLISH, C.S. Some global optimizations for a Prok,g compiler. J. Logic Program. 2, I (Apr. 1985), 43-66.
|
| |
18
|
MENOELZON, A.O. Functional dependencies in logic programs. In Proceedings of the 11th ACM International Conference on Very Large Data Bases (Stockholm, Aug. 1985). ACM, New York, 1985.
|
| |
19
|
|
| |
20
|
|
| |
21
|
O'KEEFE, R.A. On the treatment of cuts in Prolog sou me-level tools. In Proceedings of the 1985 Symposium on Logic Programming (Boston, Mass., Julv 15-18, 1985) IEEE, Washington, D.C., 1985, pp. 73-77.
|
| |
22
|
OVERBEEK, R. a., GABRIEL, J., LINDHOLM, W., AND I. USK, E.L. Prolog on multiprocessors. Intern. Rep., Argonne National Laboratory, Chicago, IlL 1985.
|
| |
23
|
ROBINSON, J.A. Logic programming--Past, present end future. New Generation Comput. I, 2 (1983).
|
| |
24
|
SAWAMURA, $., AND TAKESHIMA, T. Recursive unsob~ability of determinacy, solvable cases of determinacy and their applications to Prolog optimizati(,n. In Proceedings of the 1985 Symposium on Logic Programming (Boston, Mass., July 15-18, 19~5). IEEE, Washington, D.C., 1985, pp. 200-207.
|
 |
25
|
|
| |
26
|
WARREN, D. $. D. Implementing Prolog--Compiling predicate logic programs. Res. Reps. 39 and 40, Dept. of Artificial Intelligence, Univ. of Edinbul'gh, 1977.
|
| |
27
|
WARREN, D. H.D. Efficient processing of interactive relational database queries expressed in logic. In Proceedings of the 7th Conference on Very Large Data Bases (Cannes, Sept. 9-11, 1981). ACM, New York, 1981, pp. 272-281.
|
| |
28
|
WARREN, D. $. D. An abstract Prolog instruction set. Tech. Note 309, SRI International, Menlo Park, Calif., Oct. 1983.
|
| |
29
|
WARREN, D. $. D. The SRI model for or-parallel execution of Prolog--Abstract design and implementation issues. In Proceedings of the 1987 IEEE Symposium on Logic Programming (San Francisco, Calif., Aug. 31-Sept. 4, 1987). IEEE, New Ycrk, pp. 92-102.
|
| |
30
|
WARREN, D. S., AHAMAD, M., DEBRAY, S. K., AND KALE, L.V. Executing distributed Prolog programs on a broadcast network. In Proceedings of the 1984 International Symposium on Logic Programming (Atlantic City, N.J., Feb. 1984). IEEE, Washington, D.C., 1984.
|
| |
31
|
WESTPHAL, H., ROBERT, P., CHASSIN, J., AND SYRE, J. The PEPSys model: Combining backtracking, AND- and OR-parallelism. In Proceedings of the 1987 IEEE Symposium on Logic Programming, (San Francisco, Calif., Aug. 31-Sept. 4, 1987). IEEE, New York, 1987, pp. 436-448.
|
| |
32
|
WISE, M.J. Epilog: Reinterpreting and extending Prolog for a multiprocessor environment. In Implementations o{ Prolog, J. A. Campbell, Ed. Ellis Horwood Ltd., Chichester, 1984, pp. 341-351.
|
CITED BY 16
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Kim Marriott , María José García de la Banda , Manuel Hermenegildo, Analyzing logic programs with dynamic scheduling, Proceedings of the 21st ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.240-253, January 16-19, 1994, Portland, Oregon, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"Francois Aribaud : Reviewer"
Because it is well known that full backtracking is the cause of
inefficiency in the execution of Prolog programs, Prolog has a special
feature designed to reduce the running time, namely, the highly
controversial cut, which is not a logical oper
more...
|