Path: utzoo!mnetor!tmsoft!torsqnt!news-server.csri.toronto.edu!bonnie.concordia.ca!uunet!cs.utexas.edu!turpin From: turpin@cs.utexas.edu (Russell Turpin) Newsgroups: comp.lang.prolog Subject: Re: general data structures are impossible Summary: A different viewpoint Message-ID: <17942@cs.utexas.edu> Date: 17 Feb 91 06:38:15 GMT References: <1991Feb12.013413.24312@cs.ubc.ca> <4765@goanna.cs.rmit.oz.au> <1991Feb13.235655.6202@cs.ubc.ca> <17853@cs.utexas.edu> <1948@n-kulcs.cs.kuleuven.ac.be> <17899@cs.utexas.edu> <1991Feb15.101435.16112@ecrc.de> <17914@cs.utexas.edu> <1489@quintus.UUCP> Organization: U. Texas CS Dept., Austin, Texas Lines: 35 ----- In article <1489@quintus.UUCP> dave@quintus.UUCP (David Bowen) writes: > The point of using Prolog is to program at a "higher level" than > is possible with languages like C; that is, to write code which > is more closely related to the problem that you are trying to > solve than to the machine on which the program is to be run. > > Pointers are a low-level concept. ... Sometimes the problem one wants to solve directly concerns pointers and data structures based on them. Consider someone who has invented a new data structure with promising performance characteristics, who wants to run some experiments by making a trial implementation. Alternatively, consider someone who wants to make one spreadsheet program run against the file produced by a different application. These kind of problems are going to remain with us for a long time yet. > I agree with you that using infinite structures in Prolog is > more trouble than its worth. If the problem to be solved > intrinsically requires a complex data structure such as a cone, > then I would suggest writing at least part of your program in > a language like C. ... I would argue that if a logic language is "more trouble than its worth" to deal with a particular domain, that is because the underlying logic does not include the necessary concepts. Finite lists are not enough, and the programs for infinite structures complex, even in simle cases. (Nor is it clear that one can always create the data structure of concern.) Of course, I am biased, because I am researching the use of logic languages for data structure programming. In part, I have developed a first-order logic that includes pointer based data structures as natural objects. Russell