Path: utzoo!utgpu!watmath!att!tut.cis.ohio-state.edu!cs.utexas.edu!uunet!zephyr.ens.tek.com!tekcrl!tekgvs!toma
From: toma@tekgvs.LABS.TEK.COM (Tom Almy)
Newsgroups: comp.lang.forth
Subject: Re: Implementation dependence
Keywords: swizzling implementation
Message-ID: <5769@tekgvs.LABS.TEK.COM>
Date: 15 Aug 89 20:08:43 GMT
References: <4617@sdcc6.ucsd.EDU> <5750@tekgvs.LABS.TEK.COM> <5693@ficc.uu.net>
Reply-To: toma@tekgvs.LABS.TEK.COM (Tom Almy)
Organization: Tektronix, Inc., Beaverton,  OR.
Lines: 20

In article <5693@ficc.uu.net> peter@ficc.uu.net (Peter da Silva) writes:
>In article <5750@tekgvs.LABS.TEK.COM>, toma@tekgvs.LABS.TEK.COM (Tom Almy) writes:
>> Note that correctly implemented Forths for the 68000
>> must go through contortions to do @ and ! when not at a word boundary, but
>> this is necessary for portability!
>
>No they don't, any more than correctly implemented forths for the PDP-11
>do. If you depend on @ and ! working at arbitrary boundaries, then your
>program is machine-dependant.

If you view Forth as implementing a virtual machine, then the implementation
must allow @ and ! at odd addresses.  The 83 Standard states that the argument
to @ and ! is "addr", where the definition of "addr" is a 16 bit unsigned
integer (range 0..65535).  So, again, a correctly implemented Forth for the
68000 (or PDP-11) must handle @ and ! at odd addresses to meet the standard.
No one said it had to be fast, just portable.

Tom Almy
toma@tekgvs.labs.tek.com 
Standard Disclaimers Apply