- Proposals Process
- 200x Membership
- 1 Introduction
- 2 Terms, notation, and references
- 3 Usage requirements
- 4 Documentation requirements
- 5 Compliance and labeling
- 6 Glossary
- 7 The optional Block word set
- 8 The optional Double-Number word set
- 9 The optional Exception word set
- 10 The optional Facility word set
- 11 The optional File-Access word set
- 12 The optional Floating-Point word set
- 13 The optional Locals word set
- 14 The optional Memory-Allocation word set
- 15 The optional Programming-Tools word set
- 16 The optional Search-Order word set
- 17 The optional String word set
- 18 The optional Extended-Character word set
- Annex A: Rationale
- Annex B: Bibliography
- Annex C: Compatibility analysis
- Annex D: Portability guide
- Annex E: Reference Implementations
- Annex F: Test Suite
- Annex H: Alphabetic list of words
15 The optional Programming-Tools word set
15.1 IntroductionThis optional word set contains words most often used during the development of applications.
15.2 Additional terms and notationNone.
15.3 Additional usage requirements
15.3.1 Data types
A name token is a single-cell value that identifies a named word.
A.15.3.1 Name tokens.
15.3.2 The Forth dictionary
See: 3.3 The Forth dictionary.
15.4 Additional documentation requirements
15.4.1 System documentation
184.108.40.206 Implementation-defined options
- ending sequence for input following 15.6.2.0470 ;CODE and 15.6.2.0930 CODE;
- manner of processing input following 15.6.2.0470 ;CODE and 15.6.2.0930 CODE;
- search-order capability for 220.127.116.110 EDITOR and 15.6.2.0740 ASSEMBLER (15.3.2 The Forth dictionary);
- source and format of display by 18.104.22.1684 SEE.
22.214.171.124 Ambiguous conditions
- deleting the compilation word-list (126.96.36.1990 FORGET);
- fewer than u+1 items on control-flow stack (188.8.131.525 CS-PICK, 184.108.40.2060 CS-ROLL);
- name can't be found (220.127.116.110 FORGET, 18.104.22.1684 SYNONYM);
- name not defined via 6.1.1000 CREATE (15.6.2.0470 ;CODE);
- 6.1.2033 POSTPONE applied to 22.214.171.1242 [IF];
- reaching the end of the input source before matching 126.96.36.1991 [ELSE] or 188.8.131.523 [THEN] (184.108.40.2062 [IF]);
- removing a needed definition (220.127.116.110 FORGET);
- 6.1.1710 IMMEDIATE is applied to a word defined by 18.104.22.1684 SYNONYM;
- 22.214.171.1240 NR> is used with data not stored by 126.96.36.1998 N>R;
- adding to or deleting from the wordlist during the execution of 188.8.131.527 TRAVERSE-WORDLIST
184.108.40.206 Other system documentation
- no additional requirements.
15.4.2 Program documentation
220.127.116.11 Environmental dependencies
18.104.22.168 Other program documentation
- no additional requirements.
15.5 Compliance and labeling
15.5.1 Forth-2012 systemsThe phrase "Providing the Programming-Tools word set" shall be appended to the label of any Standard System that provides all of the Programming-Tools word set.
The phrase "Providing name(s) from the Programming-Tools Extensions word set" shall be appended to the label of any Standard System that provides portions of the Programming-Tools Extensions word set.
The phrase "Providing the Programming-Tools Extensions word set" shall be appended to the label of any Standard System that provides all of the Programming-Tools and Programming-Tools Extensions word sets.
15.5.2 Forth-2012 programsThe phrase "Requiring the Programming-Tools word set" shall be appended to the label of Standard Programs that require the system to provide the Programming-Tools word set.
The phrase "Requiring name(s) from the Programming-Tools Extensions word set" shall be appended to the label of Standard Programs that require the system to provide portions of the Programming-Tools Extensions word set.
The phrase "Requiring the Programming-Tools Extensions word set" shall be appended to the label of Standard Programs that require the system to provide all of the Programming-Tools and Programming-Tools Extensions word sets.
15.6.1 Programming-Tools words
15.6.2 Programming-Tools extension words
- 15.6.2.0470 ;CODE
- 15.6.2.0702 AHEAD
- 15.6.2.0740 ASSEMBLER
- 15.6.2.0830 BYE
- 15.6.2.0930 CODE
- 22.214.171.1245 CS-PICK
- 126.96.36.1990 CS-ROLL
- 188.8.131.520 EDITOR
- 184.108.40.2060 FORGET
- 220.127.116.118 N>R
- 18.104.22.1689.10 NAME>COMPILE
- 22.214.171.1249.20 NAME>INTERPRET
- 126.96.36.1999.40 NAME>STRING
- 188.8.131.520 NR>
- 184.108.40.2060 STATE
- 220.127.116.114 SYNONYM
- 18.104.22.1687 TRAVERSE-WORDLIST
- 22.214.171.1240.30 [DEFINED]
- 126.96.36.1991 [ELSE]
- 188.8.131.522 [IF]
- 184.108.40.2063 [THEN]
- 220.127.116.114 [UNDEFINED]
KrishnaMyneni  description of "nt" in the standardRequest for clarification2019-08-25 21:58:52
In the optional Programming Tools wordset the following description is given in 15.3.1 for the data type "name token":
"A name token is a single-cell value that identifies a named word."
Following this description, the stack diagram abbreviation "nt" is assigned to "name token" in Table 15.1.
The description "name token" is not a good match for a value which identifies a named word. "Name token" suggests a value associated with the name data of the word, i.e. the string representation of the word name, rather than a value which may be used more generally to obtain available information in the dictionary about a named word. Often this information is called the header data, or simply the header, for a word. The intent of the description in 15.3.1 is to make an association between a "name token" and a named-word, in contrast to an unnamed-word, rather than to restrict which header data may be obtained from the token.
Replace use of the term "name token" with "named-word token" to represent more precisely the quantity abbreviated as "nt" throughout the text of the standard. Also include a definition of the term, "named-word token," in section 2.1, "Definition of terms".
ruv  Same name token for different wordsProposal2020-06-09 16:36:22
ruv  Getting execution semantics from nt Request for clarification2020-08-29 08:10:26
How can we conclude from nt, do identifiable execution semantics are defined for the corresponding definition? And how to get the corresponding xt, if any?
By "identifiable" I mean that these semantics may be identified by an execution token xt — to exclude the cases of the words like
>R, etc, that have only nominal execution semantics (see also news:email@example.com).