Path: utzoo!attcan!uunet!mcsun!ukc!ox-prg!Jonathan.Bowen From: Jonathan.Bowen@prg.oxford.ac.uk (Jonathan Bowen) Newsgroups: comp.lang.prolog Subject: Re: Running backwards Message-ID: <685@culhua.prg.ox.ac.uk> Date: 18 Sep 90 09:37:52 GMT References: <11138@uswat.UUCP> Sender: news@prg.ox.ac.uk Organization: Programming Research Group, Oxford University, UK Lines: 22 In article <11138@uswat.UUCP> naim@uswat.uswest.com (Naim Abdullah) writes: >The CLP(R) interpreter can do a better job of running backwards than >vanilla Prolog interpreters. This is because it views arithmetic >predicates as constraints rather than unidirectional special predicates. Yes, I heard about Constraint Logic Programming at the recent PLILP'90 workshop in Linkoping, and thought there that it could be applied to reverse compilation. Wouldn't I need a CLP(N) rather than CLP(R) interpreter for my application, or isn't there a problem sticking to natural numbers in CLP(R)? I have now converted my original (very simple) compiler (if, while, assignment, skip, sequential composition, variable declaration) to a decompiler which successfully takes flat object code and a symbol table and produces all possible programs (apart from redundant skips and variable declarations) as output, at least for small examples. I haven't yet produced a single Prolog program which works *both*, but maybe this is not useful. -- Jonathan Bowen, , Oxford University.