Nп/п : 73 из 100
 От   : Hugh Aguilar                        2:5075/128        29 сен 23 17:32:32
 К    : S Jack                                                29 сен 23 03:37:02
 Тема : Re: Hugh Aguilar - TESTRA - What really happened there?
----------------------------------------------------------------------------------
                                                                                 
@MSGID:
<c2cbeb05-8191-4cd5-a015-825bf8624a15n@googlegroups.com> 7b2a57b8
@REPLY:
<7626edf3-1a44-4fb6-b648-1360da7e2a84n@googlegroups.com> 9783be01
@REPLYADDR Hugh Aguilar <hughaguilar96@gmail.com>
@REPLYTO 2:5075/128 Hugh Aguilar
@CHRS: CP866 2
@RFC: 1 0
@RFC-References:
<6363a6bb-7a1a-4289-9883-d4e9b5569a3e@googlegroups.com> <7829ca3f-be77-4e85-9b3b-7888175ddb18@googlegroups.com>
<4840ada6-9000-435e-a94c-14316451394d@googlegroups.com> <97d4a69e-41d0-4f01-9bf8-c9fda920d961@googlegroups.com>
<77558bd0-77e9-4fcf-9583-9a40eadb899a@googlegroups.com> 1@dont-email.me>
<fa84ccdc-9c06-4b88-9dbe-1ff7edf8a306@googlegroups.com> <c07bdd98-fd72-467d-b9b1-8beec1f479ad@googlegroups.com>
<f6421c00-4be7-433b-9e14-f9292c2ed4a9@googlegroups.com> <5e6a7510.325826043@news.eternal-september.org>
<326cea0e-c960-46db-ae9d-8e0c9489c907@googlegroups.com> <194715b4-52ef-4121-8a3e-f4c30b45098an@googlegroups.com>
<a7acea48-7781-4ad2-bc5b-feca1469d4fan@googlegroups.com> 1@gioia.aioe.org>
<6f01b499-d106-4278-b352-fb37f7c16ec4n@googlegroups.com> 1@dont-email.me>
<72540e7d-0866-4a1c-9067-84305c171250n@googlegroups.com> 1@dont-email.me>
<c1f5a937-56e5-4677-bee5-5724a30676d7n@googlegroups.com> 1@dont-email.me>
<4a00e294-d5a1-43e1-a359-1f4d6ae092d1n@googlegroups.com> <d1147752-dccd-421e-bc64-b92bd85d4687n@googlegroups.com>
<7626edf3-1a44-4fb6-b648-1360da7e2a84n@googlegroups.com>
@RFC-Message-ID:
<c2cbeb05-8191-4cd5-a015-825bf8624a15n@googlegroups.com>
@TZUTC: -0700
@PID: G2/1.0
@TID: FIDOGATE-5.12-ge4e8b94
On Thursday, September 28, 2023 at 2:14:06 PM UTC-7, S Jack wrote:
> Converting one Forth from and to standard forth is just a sed file. 
> It`s not completely straight forward as sometimes order matters. 

You are assuming that all Forth designs are the same as ANS-Forth
except with different names for words or having more words (such as
having BOUNDS be a primitive rather than use OVER + SWAP).
This isn`t true though.

ANS-Forth is very much based on Charles Moore`s Forth for the
PDP-11 written in the 1970s. The PDP-11 had a shortage of registers 
and most of the ANS-Forth design decisions assume a shortage of
registers, although this was no longer an issue in 1994 (it wasn`t
an issue in 1983 either, as we already had the MC68000).

For example, a big part of why ANS-Forth code is hard to read
is that single and double-precision numbers are jumbled together
on the same data-stack. A better design is to have a separate stack
for double-precision numbers. 
S>D would remove a signed number from the single stack, then
push an equivalent signed double to the double stack.
U>D would be like S>D except for unsigned singles.
M* would multiply two numbers on the single stack 
(and remove them), then push the product to the double stack.
UM/MOD would unsigned divide a double on the double stack 
by a number on the single stack, then push the remainder and quotient
to the single stack.
SAFE-UM/MOD would unsigned divide a double on the double stack
by a number on the single stack, then push the double-precision
remainder and quotient to the double stack.
etc.

Your SED file isn`t going to convert code from a Forth that is
designed intelligently to run under ANS-Forth.

Note also that SAFE-UM/MOD can`t be written in ANS-Forth,
despite the fact that it is used internally by # for pictured numbers.
ANS-Forth provides UM/MOD (6.1.2370) but says:
"An ambiguous condition exists if [the denominator] is zero or if 
the quotient lies outside the range of a single-cell unsigned integer."
What are you supposed to do if your quotient overflows, which will
happen if you have a small denominator?
What are you supposed to do if your remainder overflows, which will
happen if you have a large denominator?
The ANS-Forth document routinely uses the term "ambiguous condition"
that means: "up Shit Creek in a wire boat with a cardboard paddle."

ANS-Forth is really worthless from a technical standpoint.
ANS-Forth was a marketing gimmick from Elizabeth Rather.
--- G2/1.0
 * Origin: usenet.network (2:5075/128)
SEEN-BY: 5001/100 5005/49 5015/255 5019/40 5020/715
848 1042 4441 12000
SEEN-BY: 5030/49 1081 5058/104 5075/128
@PATH: 5075/128 5020/1042 4441



   GoldED+ VK   │                                                 │   09:55:30    
                                                                                
В этой области больше нет сообщений.

Остаться здесь
Перейти к списку сообщений
Перейти к списку эх