Deutsch   English   Français   Italiano  
<vcbuog$3etuk$3@dont-email.me>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!news.nobody.at!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Ruvim <ruvim.pinka@gmail.com>
Newsgroups: comp.lang.forth
Subject: Re: single-xt approach in the standard
Date: Tue, 17 Sep 2024 17:04:16 +0400
Organization: A noiseless patient Spider
Lines: 75
Message-ID: <vcbuog$3etuk$3@dont-email.me>
References: <vcbn5e$3etuk$1@dont-email.me>
 <1a3ebf77c1ed8926d455a268e1309fe0@www.novabbs.com>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Tue, 17 Sep 2024 15:04:17 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="bb6be25696ff9ecdef0cd10a258ad90b";
	logging-data="3635156"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19/xJNaHeSSn5T5SXIC5aRl"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:14cPjcCKIKW/8fzPDFY6OtlJ8BE=
In-Reply-To: <1a3ebf77c1ed8926d455a268e1309fe0@www.novabbs.com>
Content-Language: en-US
Bytes: 3409

On 2024-09-17 16:15, mhx wrote:
> On Tue, 17 Sep 2024 10:54:37 +0000, Ruvim wrote:
> 
>> Do you think that the Forth standard should recognize the classic
>> single-xt approach as possible for implementing a standard Forth system?
>>
>> The classic single-xt approach implies that only one execution token
>> (xt) is associated with a name token (nt), and only one name token is
>> associated with a word (a named Forth definition). And words whose
>> compilation semantics differ form default compilation semantics are
>> implemented as immediate words.
> 
> First define exactly the [new things] that can be done with an xt or an
> nt.


These things are well known.

For "xt" — "compile,", "execute", "catch".

For "nt" — "name>" (classic), "name>interpret", "name>compile", 
"name>string".

Also, "xt" and "nt" can be passed to the words that accept "x".



But it is irrelevant to my questions.

The single-xt approach was used in Forth systems long before Forth-94.
Should this approach be possible for a standard system?

There is a point of view (which I don't share) that it is impossible to 
implement the standard word `s"` (from the File word set) in a standard 
*program*. I.e., that the following definition for `s"` is not standard 
compliant:

   : s" ( "ccc" -- sd | )
     [char] " parse
     state @ if postpone sliteral exit then
     dup >r allocate throw tuck r@ move r>
   ; immediate

This effectively means that the classic single-xt approach is impossible 
for a standard system.




> What some of my customers tried is, by using standard words, associate
> generated code sequences with an xt (nearly impossible),

> or infer an nt from an xt (which is not 1-to-n [n>=3], and asymmetrical).

Even in some classic single-xt systems, one xt can be associated with 
many nt. (of course, what is now "nt" was known as "NFA").



> A limited/qualified guarantee for the nt-xt relationship can be useful.
> Example: DEFER aa  ' DROP IS aa  allows to recover the nt "DROP" from
> aa's DEFER@ and it is possible to disassemble linked lists of nt's.

You probably mean the *xt* "DROP" from aa's DEFER@

   DEFER aa
   ' DROP IS aa
   ' aa DEFER@ \ gives xt of DROP

Of cause, a standard program cannot disassemble linked lists of nt's


--
Ruvim