Proposal: [249] Revert rewording the term "execution token"

Formal

This page is dedicated to discussing this specific proposal

ContributeContributions

ruvavatar of ruv [249] Revert rewording the term "execution token"Proposal2022-08-12 14:18:35

Author

Ruv

Change Log:

  • 2022-08-12 Initial version
  • 2021-09-14 Formulation of the problems in a comment

Problem

The proposal Reword the term "execution token" suggests to change the definition for the term "execution token".

The original variant:

execution token: A value that identifies the execution semantics of a definition.

The new variant:

execution token: A value that can be passed to EXECUTE (6.1.1370)

It has the following issues.

  1. This changing was suggested to solve a problem that this definition allegedly does not match its usage in FIND, ', ['], NAME>INTERPRET, NAME>COMPILE. But this problem does not exist, as I shown in a comment. Anton (the proponent) had not answer to my reasoning.

  2. The accepted variant of the definition doesn't solve anything, but it introduces a number of new problems, as I shown in a comment.

    • Now the fundamental term definition is based on a Forth word (terms should be used in the Forth words specifications, but not Forth words in terms).

    • Now a new lacuna is introduced into the normative text — it's unclear what a data object of "execution token" data type means (see 3.1 Data types, 3.1.3.5 Execution tokens, 15.3.1 Data types for name token, as an example).

    • Other normative parts (for example, 6.1.1370 EXECUTE) still assume that an execution token identifies execution semantics, but now groundlessly.

    • The accepted definition is recursive, since it's based on the word EXECUTE, which in turn is based on "execution token" data type (via xt data type symbol, see also 2.2.2 Stack notation). So it says that "execution token" is a value that is an execution token.

Solution

Don't introduce the changes of the proposal «Reword the term "execution token"», or revert the definition for the term "execution token" as it was in Forth-2012.

Proposal

In Section 2.1, change:

execution token: A value that can be passed to EXECUTE (6.1.1370)

into

execution token: A value that identifies the execution semantics of a definition.

UlrichHoffmannavatar of UlrichHoffmann

The committee considers this proposal formal.

Formal
Reply New Version