Path: utzoo!mnetor!uunet!mcvax!enea!ttds!draken!kth!sics!lhe From: lhe@sics.se (Lars-Henrik Eriksson) Newsgroups: comp.lang.prolog Subject: Re: compatibility/elegance & *theory* Message-ID: <1824@sics.se> Date: 5 Apr 88 18:39:58 GMT References: <136@vor.esosun.UUCP> Reply-To: lhe@sics.se (Lars-Henrik Eriksson) Organization: Swedish Institute of Computer Science, Kista Lines: 32 In article <136@vor.esosun.UUCP> jackson@esosun.UUCP (Jerry Jackson) writes: >After reading Richard O'Keefe's response to Cris Kobryn's article, I would >like to make a *few* points... ROK wrote: >>> It is theoretically *impossible* to write a *correct* automatic >>> conversion program for Prolog or Lisp. >What an interesting statement.... Is it also theoretically *impossible* to >write a *correct* automatic conversion program from Lisp to assembler? >Somehow, this seems like a similar problem to me... Well, yes, it is. UNLESS you are willing to include in the resulting assembler program a complete Lisp interpreter. The reason for this, of course, is that a Lisp program can construct code and execute it while it is running. Even if the Lisp program itself is translated into assembler, what it constructs is still Lisp, and must be interpreted by a Lisp interpreter. So, if you want a correct automatic conversion program for Prolog or Lisp, the output of the conversion must include a complete interpreter for the particular dialect of Prolog you happen to be using. The same problem would arise in a program to convert between different Prolog dialects. This does not mean that you cannot in particular cases (of perhaps even in most cases) get away without the interpreter, of course. But if you want a conversion program that works 100% of the time you have no choice. Lars-Henrik Eriksson Internet: lhe@sics.se Swedish Institute of Computer Science Phone (intn'l): +46 8 752 15 09 Box 1263 Telefon (nat'l): 08 - 752 15 09 S-164 28 KISTA, SWEDEN