Path: utzoo!utgpu!water!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!bloom-beacon!bu-cs!purdue!i.cc.purdue.edu!j.cc.purdue.edu!pur-ee!uiucdcs!uxc.cso.uiuc.edu!uicsrd.csrd.uiuc.edu!sehr From: sehr@uicsrd.csrd.uiuc.edu Newsgroups: comp.lang.prolog Subject: Call/1 and goal processing Message-ID: <42200003@uicsrd.csrd.uiuc.edu> Date: 7 Jun 88 02:31:00 GMT Lines: 26 Nf-ID: #N:uicsrd.csrd.uiuc.edu:42200003:000:1003 Nf-From: uicsrd.csrd.uiuc.edu!sehr Jun 6 21:31:00 1988 I am in the process of writing an Or-parallel interpreter for Prolog, and have run across a difficulty. The question I wonder about is how other interpreters that use a structure-shared representation go about implementing call/1 in an efficient manner without unduly penalizing ordinary goal processing. It seems that if one allows the interpretation of dynamically constructed goals (i.e. those constructed via functor/3, arg/3, and univ (=..)), then one must cope with the possibility of variable dereferencing during the selection of a goal to process. Does anyone out there know how it is done in other interpreters (C-Prolog, SB-Prolog, etc.)? David ----- David C. Sehr Center for Supercomputing Research and Development University of Illinois at Urbana-Champaign 305 Talbot Lab 104 South Wright Street Urbana, IL 61801-2932 Internet, BITNET: sehr@uicsrd.csrd.uiuc.edu UUCP: {ihnp4,uunet,convex}!uiucuxc!uicsrd!sehr ARPANET: sehr%uicsrd@uxc.cso.uiuc.edu CSNET: sehr%uicsrd@uiuc.csnet