From: ForthNet@willett.pgh.pa.us (ForthNet articles from GEnie)
Newsgroups: comp.lang.forth
Subject: ANS TC Magnet for ROMability
Date: 22 Aug 92 13:27:13 GMT
Organization: EIEI-U

Category 10,  Topic 22
Message 79        Fri Aug 21, 1992
B.RODRIGUEZ2 [Brad]          at 22:54 EDT
 
                 ANSI X3J14 FORTH TECHNICAL PROPOSAL
                     (X3J14 dpANS-3, March 1992)

TITLE:  X attribute for cross-interpretable words

SECTION:  5.1 Glossary Index Line
          various sections as indicated below

SUMMARY:  Identify those Standard words that are available inter-
     pretively in a cross-compiler environment.

PROPOSAL:  Add to Table 5.1 in Section 5.1 the following Word
     Definition Attribute:

          "X   the word may be used interpretively during cross-
               compilation."

     Add the "X" attribute to the following Standard words:
          6.1.0070  '              6.1.2260  SWAP
          6.1.0080  (              6.1.2360  UM*
          6.1.0090  *              6.1.2410  VARIABLE
          6.1.0100  */             6.1.2490  XOR
          6.1.0110  */MOD          6.1.2540  ]
          6.1.0120  +              6.2.0200  .(
          6.1.0150  ,              6.2.0455  :NONAME
          6.1.0160  -              6.2.1485  FALSE
          6.1.0230  /              6.2.1660  HEX
          6.1.0240  /MOD           6.2.2298  TRUE
          6.1.0450  :              6.2.2405  VALUE
          6.1.0550  >BODY          6.2.2535  \
          6.1.0705  ALIGN          7.2.1790  LOAD
          6.1.0706  ALIGNED        7.2.2280  THRU
          6.1.0710  ALLOT          7.2.2535  \
          6.1.0720  AND            8.1.0360  2CONSTANT
          6.1.0860  C,             8.1.0440  2VARIABLE
          6.1.0890  CELLS          11.1.0080  (
          6.1.0898  CHARS          11.1.1718  INCLUDED
          6.1.0950  CONSTANT       11.1.2165  S"
          6.1.1000  CREATE         11.2.2535  \
          6.1.1170  DECIMAL        12.1.1490  FCONSTANT
          6.1.1260  DROP           12.1.1630  FVARIABLE
          6.1.1290  DUP            15.2.0450  :
          6.1.1345  ENVIRONMENT?   15.2.0455  :NONAME
          6.1.1650  HERE           15.2.0740  ASSEMBLER
          6.1.1710  IMMEDIATE      15.2.0930  CODE
          6.1.1890  MOD            15.2.1340  END-CODE
          6.1.1980  OR             15.2.2531  [ELSE]
          6.1.1990  OVER           15.2.2532  [IF]
          6.1.2160  ROT            15.2.2533  [THEN]
          6.1.2165  S"

     Note: this list of words is a suggestion, based on my expe-
     rience with cross-compiled applications.  The exact list of
     words to be given the "X" attribute may be modified by the
     Technical Committee, without altering the intent of this
     proposal.

RELATED PROPOSALS:  "New category: ANS Forth Translator"

DISCUSSION:  A Forth cross-compiler must provide interpretive
     access to at least some of the Core word set.  Words such as
     : CONSTANT and VARIABLE are necessary to write a cross-
     compilable Forth program.  But it is unnecessary and imprac-
     tical for the entire Core word set to be available.

     This proposal identifies those words that must be available
     interpretively while cross-compiling, and thereby defines
     the meaning of an "ANS Forth cross compiler."  (See related
     proposal for "ANS Forth Translator".)

     Included in this list are:

     a)  all of the defining words in the dpANS ("D" attribute),
          except MARKER.  These are the words that allow the
          creation of new Forth definitions.

     b)  other words that control the compilation of data and
          programs, such as ALLOT C, and HERE.

     c)  the words that are necessary to control loading of
          source code.

     d)  an assortment of arithmetic, logical, and stack opera-
          tors.  These allow the use of arithmetic and logical
          expressions to create numeric values.

     e)  other words that have proven useful for cross-compiling
          applications.

     Note that memory access words such as @ ! and FILL have been
     specifically excluded from this list.  Not all cross-
     compilers can support these operations interpretively.

     Note also that the "C" and "X" attributes are mutually
     exclusive, as "C" denotes compilation-only, and "X" denotes
     a word that can be interpreted.

-----
This message came from GEnie via willett.  You *cannot* reply to the author
using e-mail.  Please post a follow-up article, or use any instructions
the author may have included (USMail addresses, telephone #, etc.).
Report problems to: dwp@willett.pgh.pa.us