12 citations found. Retrieving documents...
G. Smolka, Making Control and Data Flow in Logic Programs Explicit, in Proc. 1984 Symposium on LISP and Functional Programming, Austin, TX, Aug. 1984.

 Home/Search   Document Not in Database   Summary   Related Articles   Check  

This paper is cited in the following contexts:
Automatic Mode Inference for Logic Programs - Debray, Warren (1988)   (44 citations)  (Correct)

....either to optimize a program without mode declarations, or to verify the declarations made by the programmer, much as type checkers in other languages verify type declarations. Some researchers have considered the question of verifying the consistency of mode declarations supplied by the user [3, 17, 19]. The issue of automatic mode inference has been considered by Mellish [14, 15] and Reddy [18] and more recently by Bruynooghe et al. 5] and Mannila and Ukkonen [13] We focus our attention on the inference of modes rather than on verifying the consistency of user supplied mode declarations. ....

G. Smolka, Making Control and Data Flow in Logic Programs Explicit, in Proc. 1984 Symposium on LISP and Functional Programming, Austin, TX, Aug. 1984.


The implementation of Mercury, an efficient purely.. - Somogyi, Henderson.. (1995)   (2 citations)  (Correct)

....list(T) mode sort(in, out) is det. mode sort(out, in) is nondet. mode sort(in, in) is semidet. The compiler analyses the bodies of predicates to check that their declarations are correct. Although this problem is undecidable in general, several fast approximate solutions are known [3, 14, 15], and they work well in practice. In fact the compiler needs determinism declarations only for exported predicates it can (and does) infer the determinism of predicates local to a module. However, there is no advantage in making them optional, since determinism declarations are not only very ....

G. Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311-- 322, Austin, Texas, July 1984.


Logic Programming for the Real World - Somogyi, Henderson, Conway, O'Keefe (1995)   (3 citations)  (Correct)

....one solution : mode append(out, out, in) is multi. at least one solution The compiler analyses the bodies of predicates to check that their determinism declarations are correct. Although this problem is undecidable in general, several fast approximate (but conservative) solutions are known [4, 20, 21], and they work well in practice. Our determinism analysis algorithm [22] is especially designed to take advantage of the extra information provided by the strong type and mode systems. This algorithm produces good error messages. For example, if one omits the base case from the definition of ....

G. Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311--322, Austin, Texas, July 1984.


The execution algorithm of Mercury, an efficient purely .. - Somogyi, Henderson.. (1996)   (32 citations)  (Correct)

....member 2. pred member(T, list(T) mode member(out, in) is nondet. mode member(in, in) is semidet. The compiler analyses the bodies of predicates to check that their declarations are correct. Although this problem is undecidable in general, several fast approximate solutions are known [5, 26, 27], and they work well in practice. The algorithm must be conservative; it must never underestimate the maximum number of solutions of a predicate, and it must never report that a procedure always has at least one solution if it can fail without producing a solution. Our algorithm [12] looks for ....

G. Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311-- 322, Austin, Texas, July 1984.


Mercury, an Efficient Purely Declarative Logic.. - Somogyi, Henderson.. (1995)   (29 citations)  (Correct)

....member 2. pred member(T, list(T) mode member(out, in) is nondet. mode member(in, in) is semidet. The compiler analyses the bodies of predicates to check that their declarations are correct. Although this problem is undecidable in general, several fast approximate solutions are known [2, 9, 10], and they work well in practice. In fact the compiler needs determinism declarations only for exported predicates it can (and does) infer the determinism of predicates local to a module. However, there is no advantage in making them optional, since determinism declarations are not only very ....

....starting with point to labels; values starting with the normal address of operator are links within the nondet stack. The value [1,2] means a word whose tag is cons and whose body is a pointer to the rest of the list, which is on the heap. Both maxfr and curfr contain nondetstack[9]. Note that the query interpreter is special because its lifetime is the lifetime of the entire process. It may be backtracked into, and thus needs its redoip slot, but it never fails and never succeeds, and so its prevfr, succfr and succip slots are unused. The code for the first clause starts by ....

[Article contains additional citation context not shown here]

G. Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311--322, Austin, Texas, July 1984.


Determinism analysis in the Mercury compiler - Henderson, Somogyi, Conway (1996)   (18 citations)  (Correct)

....concept of determinism in logic programs has been around for a long time. Several researchers [1, 2, 5] have proposed global analysis algorithms for finding out which predicates in a Prolog program can succeed at most once with the intention of optimizing the compilation of such predicates. Smolka [7, 8] has proposed a system that requires determinism declarations somewhat similar to ours but in which these declarations are not checked by the compiler. Neither of these approaches is as effective as the Mercury determinism system in improving programmer productivity and program reliability. While ....

Gert Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311--322, Austin, Texas, July 1984.


Code generation for Mercury - Conway (1994)   (4 citations)  (Correct)

....be ground when it returns. The mode analysis can therefore accept the clause as being valid. The compiler analyses the bodies of predicates to check that their determinism declarations are correct. Although this problem is undecidable in general, several fast approximate solutions are known [4, 12, 13], and they work well in practice. In fact the compiler needs determinism declarations only for exported predicates it can (and does) infer the determinism of predicates local to a module. However, determinism declarations are very easy to write, provide important documentation, and help the ....

G. Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311-- 322, Austin, Texas, July 1984.


Logic Programming for the Real World - Somogyi, Henderson, Conway, O'Keefe (1995)   (3 citations)  (Correct)

....one solution : mode append(out, out, in) is multi. at least one solution The compiler analyses the bodies of predicates to check that their determinism declarations are correct. Although this problem is undecidable in general, several fast approximate (but conservative) solutions are known [9, 33, 34], and they work well in practice. Our determinism analysis algorithm [36] is especially designed to take advantage of the extra information provided by the strong type and mode systems. This algorithm produces good error messages. For example, if one omits the base case from the definition of ....

G. Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311--322, Austin, Texas, July 1984.


The execution algorithm of Mercury, an efficient purely.. - Zoltan Somogyi (1996)   (32 citations)  (Correct)

....member 2. pred member(T, list(T) mode member(out, in) is nondet. mode member(in, in) is semidet. The compiler analyses the bodies of predicates to check that their declarations are correct. Although this problem is undecidable in general, several fast approximate solutions are known [4, 17, 18], and they work well in practice. We detect determinism by looking for disjunctions in which all arms contain a test unification of the same variable against different function symbols. We call such disjunctions switches, since only one arm of the disjunction can possibly be executed. If some arms ....

G. Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311-- 322, Austin, Texas, July 1984.


Pruning in Logic Programming - Naish (1995)   (2 citations)  (Correct)

....to use some form of declaration that a predicate is deterministic in a particular mode. This is supported in Mercury but only for determinism which can be verified by the compiler If slowsort was declared deterministic an error would result. Declarations which are not checked by the compiler [Smo84] could be given semantics in the way we suggest below for only. In the body of a clause or goal, only Vars Goal can be viewed declaratively as being equivalent to Goal. However, this alone does not solve the problem of incompleteness if Goal actually has multiple solutions then the pruned ....

Gert Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311--322, Austin, Texas, July 1984.


Determinism analysis in the Mercury compiler - Fergus Henderson (1996)   (18 citations)  (Correct)

....concept of determinism in logic programs has been around for a long time. Several researchers [2, 3, 6] have proposed global analysis algorithms for finding out which predicates in a Prolog program can succeed at most once with the intention of optimizing the compilation of such predicates. Smolka [9, 10] has proposed a system that requires determinism declarations somewhat similar to ours but in which these declarations are not checked by the compiler. Neither of these approaches is as effective as the Mercury determinism system in improving programmer productivity and program reliability. While ....

G. Smolka. Making control and data flow in logic programs explicit. In Conference Record of the ACM Symposium on LISP and Functional Programming, pages 311--322, Austin, Texas, July 1984.


Shallow Embedding of Prolog Programs - Seres (1999)   (Correct)

No context found.

G. Smolka. Making control and data flow in logic programs explicit. Journal of the ACM, 8, 1984.

Online articles have much greater impact   More about CiteSeer.IST   Add search form to your site   Submit documents   Feedback  

CiteSeer.IST - Copyright Penn State and NEC