Related articles |
---|
[11 earlier articles] |
Re: Help on disassembler/decompilers freek@fwi.uva.nl (1990-09-12) |
Re: Help on disassembler/decompilers dik@cwi.nl (1990-09-10) |
Re: Help on disassembler/decompilers markh@csd4.csd.uwm.edu (Mark William Hopkins) (1990-09-10) |
Re: Help on disassembler/decompilers Jonathan.Bowen@prg.oxford.ac.uk (Jonathan Bowen) (1990-09-13) |
Re: Help on disassembler/decompilers nreadwin@miclon.uucp (1990-09-13) |
Re: Help on disassembler/decompilers td@alice.UUCP (1990-09-13) |
Re: Help on disassembler/decompilers kym@bingvaxu.cc.binghamton.edu.cc.binghamton.edu (1990-09-14) |
Re: Help on disassembler/decompilers hankd@dynamo.ecn.purdue.edu (1990-09-14) |
Re: Help on disassembler/decompilers hawley@icot32.icot.or.jp (1990-09-15) |
Re: Help on disassembler/decompilers ch@dce.ie (1990-09-14) |
Re: Help on disassembler/decompilers kym@bingvaxu.cc.binghamton.edu.cc.binghamton.edu (1990-09-15) |
Re: Help on disassembler/decompilers roland@ai.mit.edu (1990-09-16) |
Re: Help on disassembler/decompilers raulmill@usc.edu (1990-09-16) |
[5 later articles] |
Newsgroups: | comp.compilers,comp.lang.prolog |
From: | kym@bingvaxu.cc.binghamton.edu.cc.binghamton.edu (R. Kym Horsell) |
Keywords: | debug, prolog |
Organization: | SUNY Binghamton, NY |
References: | <HOW.90Sep5173755@sundrops.ucdavis.edu> <2900@network.ucsd.edu> <1990Sep9.010032.23235@sco.COM> <433@necssd.NEC.COM> <679@culhua.prg.ox.ac.uk> |
Date: | 14 Sep 90 14:01:59 GMT |
In article <679@culhua.prg.ox.ac.uk> Jonathan Bowen <Jonathan.Bowen@prg.oxford.ac.uk> writes:
>produce a high-level program or programs as output. The main problem is
>running the necessary arithmetic backwards (i.e. avoiding the use of
>"is") and I am currently looking into this. Has anyone else done any
>similar work or can anyone supply any useful references?
Funny, I didn't _see_ this in comp.lang.prolog...
To answer your query, arithmetic _can_ be run backward.
One simple, but inefficient, technique is to use ``unary'' arithmetic. (I.e.
zero is 0, 1 is suc(0), 2 is suc(suc(0))). Rewriting the is/2, >/2, etc is a
pain but it _can_ be done.
Quite a lot of interesting work has been done on investigating which Prolog
relations can run backward -- look thru the Int Conf on Logic Prog & similar
things (they only go a few years so why check out the ref for you)?
DHD Warren wrote a nice article in Software Practice and Experience regarding
compiler-writing in Prolog -- check that out too (he writes fairly _neat_
code for one thing, and we're talking about readability here).
-Kym Horsell
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.