- Foreword
- 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 Introduction
This optional word set contains words most often used during the development of applications.
15.2 Additional terms and notation
None.
15.3 Additional usage requirements
15.3.1 Data types
A name token is a single-cell value that identifies a named word.
Append table 15.1 to table 3.1.
See: A.15.3.1 Name tokens.
15.3.2 The Forth dictionary
A program using the words CODE or ;CODE associated with assembler code has an environmental dependency on that particular instruction set and assembler notation.
Programs using the words EDITOR or ASSEMBLER require the Search Order word set or an equivalent implementation-defined capability.
See: 3.3 The Forth dictionary.
15.4 Additional documentation requirements
15.4.1 System documentation
15.4.1.1 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 15.6.2.1300 EDITOR and 15.6.2.0740 ASSEMBLER (15.3.2 The Forth dictionary);
- source and format of display by 15.6.1.2194 SEE.
15.4.1.2 Ambiguous conditions
- deleting the compilation word-list (15.6.2.1580 FORGET);
- fewer than u+1 items on control-flow stack (15.6.2.1015 CS-PICK, 15.6.2.1020 CS-ROLL);
- name can't be found (15.6.2.1580 FORGET, 15.6.2.2264 SYNONYM);
- name not defined via 6.1.1000 CREATE (15.6.2.0470 ;CODE);
- 6.1.2033 POSTPONE applied to 15.6.2.2532 [IF];
- reaching the end of the input source before matching 15.6.2.2531 [ELSE] or 15.6.2.2533 [THEN] (15.6.2.2532 [IF]);
- removing a needed definition (15.6.2.1580 FORGET);
- 6.1.1710 IMMEDIATE is applied to a word defined by 15.6.2.2264 SYNONYM;
- 15.6.2.1940 NR> is used with data not stored by 15.6.2.1908 N>R;
- adding to or deleting from the wordlist during the execution of 15.6.2.2297 TRAVERSE-WORDLIST
15.4.1.3 Other system documentation
- no additional requirements.
15.4.2 Program documentation
15.4.2.1 Environmental dependencies
- using the words 15.6.2.0470 ;CODE or 15.6.2.0930 CODE.
15.4.2.2 Other program documentation
- no additional requirements.
15.5 Compliance and labeling
15.5.1 Forth-2012 systems
The 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 programs
The 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 Glossary
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
- 15.6.2.1015 CS-PICK
- 15.6.2.1020 CS-ROLL
- 15.6.2.1300 EDITOR
- 15.6.2.1580 FORGET
- 15.6.2.1908 N>R
- 15.6.2.1909.10 NAME>COMPILE
- 15.6.2.1909.20 NAME>INTERPRET
- 15.6.2.1909.40 NAME>STRING
- 15.6.2.1940 NR>
- 15.6.2.2250 STATE
- 15.6.2.2264 SYNONYM
- 15.6.2.2297 TRAVERSE-WORDLIST
- 15.6.2.2530.30 [DEFINED]
- 15.6.2.2531 [ELSE]
- 15.6.2.2532 [IF]
- 15.6.2.2533 [THEN]
- 15.6.2.2534 [UNDEFINED]
ContributeContributions
KrishnaMyneni [109] description of "nt" in the standardRequest for clarification2019-08-25 21:58:52
Background
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.
Problem
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.
Proposal
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 [136] Same name token for different wordsProposal2020-06-09 16:36:22
ruv [151] 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 EXIT
, >R
, etc, that have only nominal execution semantics (see also news:r2u5p3$n4p$1@dont-email.me).