Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.forth > #11937
| From | JennyB <jennybrien@googlemail.com> |
|---|---|
| Newsgroups | comp.lang.forth |
| Subject | Re: Distinguishing DOES> |
| Date | 2012-05-05 07:19 -0700 |
| Organization | http://groups.google.com |
| Message-ID | <8512970.374.1336227597535.JavaMail.geo-discussion-forums@vbez20> (permalink) |
| References | <3614770.3.1336060788880.JavaMail.geo-discussion-forums@yngr14> <4fa3e44d$0$295$14726298@news.sunsite.dk> <jo1e2q$gd0$1@dont-email.me> <4fa4fe14$0$294$14726298@news.sunsite.dk> |
On Saturday, 5 May 2012 11:16:51 UTC+1, Doug Hoffman wrote: > Actually, I notice the following when using SEE in Carbon MacForth, > suggesting that only implementation-specific information is needed and > that a prototype for comparison is not needed to determine the defining > word. Not sure if all Forths can do this: > > : human create does> ; > human bob > > see bob > > Name Token Type Flags ^Code Size ^Data > BOB 9B7FC Does> -N- 4067FC 10 101DC0C > DOES> word, Created by HUMAN > vocabulary: FORTH source file: 'untitled' > 004067FC: 95AEFFFC stwu r13/TOS, $-4(r14/DSP) > 00406800: 39B3DC0C addi r13/TOS, r19/DBP, -9204 BOB > 00406804: 3DAD0002 addis r13/TOS, r13/TOS, 2 > 00406808: 4E800020 blr > I suspect that the decompiler simply searches back from the code address referenced by DOES> to find the closest definition. What does it do with: : Foo DOES> ; : Human CREATE Foo ; Human Bob ? What started me thinking about this was Gforth's INTERPRET/COMPILE , where ' POSTPONE and friends are then redefined to return the appropriate behaviour for interpret/compile words. In that case (where any imaginable word may be tested) there is no 100% portable solution, because you are limited to comparing data space and you can conceivably come across a definition with the same data. LIKE? seems fairly simple for any particular Forth, but this is the best I have managed for CHILD? : ACTOR \ 'does ++ CREATE , DOES> DUP CELL+ SWAP @ EXECUTE ; : DEFINER \ 'builds 'does ++ CREATE 2, DOES> 2@ CHILD EXECUTE ; ' nop ' nop DEFINER urdefiner ' nop ACTOR uractor : CHILD? \ xt1 xt2 -- true if xt1 defined by xt2 2DUP ['] urdefiner like? SWAP ['] uractor like? AND 0= IF FALSE EXIT THEN >BODY @ SWAP >BODY @ = ;
Back to comp.lang.forth | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Distinguishing DOES> JennyB <jennybrien@googlemail.com> - 2012-05-03 08:59 -0700
Re: Distinguishing DOES> Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-05-03 17:23 -0700
Re: Distinguishing DOES> Zbiggy <zbigniew2011REMOVE@gmail.REMOVE.com> - 2012-05-04 10:47 +0100
Re: Distinguishing DOES> Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-05-04 05:12 -0500
Re: Distinguishing DOES> anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-05-04 11:33 +0000
Re: Distinguishing DOES> Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-05-04 08:11 -0500
Re: Distinguishing DOES> anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-05-04 16:18 +0000
Re: Distinguishing DOES> Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-05-05 02:02 -0500
Re: Distinguishing DOES> anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-05-05 14:16 +0000
Re: Distinguishing DOES> Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-05-06 02:53 -0500
Re: Distinguishing DOES> anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-05-05 14:25 +0000
Re: Distinguishing DOES> BruceMcF <agila61@netscape.net> - 2012-05-05 08:07 -0700
Re: Distinguishing DOES> Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-05-08 06:23 -0700
Re: Distinguishing DOES> Bernd Paysan <bernd.paysan@gmx.de> - 2012-05-09 00:25 +0200
Re: Distinguishing DOES> Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-05-09 01:26 -0700
Re: Distinguishing DOES> Mark Wills <markrobertwills@yahoo.co.uk> - 2012-05-09 03:18 -0700
Re: Distinguishing DOES> Andrew Haley <andrew29@littlepinkcloud.invalid> - 2012-05-09 05:29 -0500
Re: Distinguishing DOES> "Elizabeth D. Rather" <erather@forth.com> - 2012-05-09 07:11 -1000
Re: Distinguishing DOES> Zbiggy <zbigniew2011REMOVE@gmail.REMOVE.com> - 2012-05-09 22:48 +0100
Re: Distinguishing DOES> Bernd Paysan <bernd.paysan@gmx.de> - 2012-05-09 23:22 +0200
Re: Distinguishing DOES> Zbiggy <zbigniew2011REMOVE@gmail.REMOVE.com> - 2012-05-09 23:43 +0100
Re: Distinguishing DOES> Bernd Paysan <bernd.paysan@gmx.de> - 2012-05-10 00:49 +0200
Re: Distinguishing DOES> Zbiggy <zbigniew2011REMOVE@gmail.REMOVE.com> - 2012-05-10 11:33 +0100
Re: Distinguishing DOES> Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-05-10 10:02 +0000
Re: Distinguishing DOES> Bernd Paysan <bernd.paysan@gmx.de> - 2012-05-10 15:13 +0200
Re: Distinguishing DOES> Mark Wills <markrobertwills@yahoo.co.uk> - 2012-05-10 05:07 -0700
Re: Distinguishing DOES> Hugh Aguilar <hughaguilar96@yahoo.com> - 2012-05-10 22:57 -0700
Re: Distinguishing DOES> Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-05-04 12:37 +0000
Re: Distinguishing DOES> Doug Hoffman <glidedog@gmail.com> - 2012-05-04 10:14 -0400
Re: Distinguishing DOES> humptydumpty <ouatubi@gmail.com> - 2012-05-04 20:27 +0000
Re: Distinguishing DOES> Doug Hoffman <glidedog@gmail.com> - 2012-05-05 06:16 -0400
Re: Distinguishing DOES> JennyB <jennybrien@googlemail.com> - 2012-05-05 07:19 -0700
Re: Distinguishing DOES> anton@mips.complang.tuwien.ac.at (Anton Ertl) - 2012-05-05 14:55 +0000
Re: Distinguishing DOES> JennyB <jennybrien@googlemail.com> - 2012-05-07 07:24 -0700
Re: Distinguishing DOES> Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-05-06 11:04 +0000
Re: Distinguishing DOES> Doug Hoffman <glidedog@gmail.com> - 2012-05-06 07:47 -0400
Re: Distinguishing DOES> ward@megawolf.com - 2012-05-08 04:39 -0700
Re: Distinguishing DOES> Doug Hoffman <glidedog@gmail.com> - 2012-05-08 07:50 -0400
Re: Distinguishing DOES> Hans Bezemer <the.beez.speaks@gmail.com> - 2012-05-05 14:24 +0200
Re: Distinguishing DOES> Albert van der Horst <albert@spenarnc.xs4all.nl> - 2012-05-06 11:09 +0000
csiph-web